node package manager
It’s your turn. Help us improve JavaScript. Take the 2017 JavaScript Ecosystem Survey »



Build Status

A lightweight module to map JS objects and queries to DynamoDB tables (supports the latest API version, 2012-08-10).

This builds upon the dynamo-client module, although any client that supports a simple request method will also work.


var dynamoTable = require('dynamo-table')
// Will use us-east-1 and credentials from process.env unless otherwise specified 
var table = dynamoTable('Orders', {key: ['customerId', 'orderId']})
table.put({customerId: 23, orderId: 101, lineItemIds: [1, 2, 3]}, function(err) {
  if (err) throw err
  table.put({customerId: 23, orderId: 102, lineItemIds: [4, 5, 6]}, function(err) {
    if (err) throw err
    table.query({customerId: 23, orderId: {'>': 101}}, function(err, items) {
      if (err) throw err
      // [{customerId: 23, orderId: 102, lineItemIds: [4, 5, 6]}] 


dynamoTable(name, [options])

new DynamoTable(name, [options])

Constructor of the table, including DynamoDB details, keys, mappings, etc

get(key, [options], callback)

Corresponds to GetItem

put(jsObj, [options], callback)

Corresponds to PutItem

delete(key, [options], callback)

Corresponds to DeleteItem

update(key, actions, [options], callback)

update(jsObj, [options], callback)

Corresponds to UpdateItem

query(conditions, [options], callback)

Corresponds to Query

scan([conditions], [options], callback)

Corresponds to Scan

batchGet(keys, [options], [tables], callback)

Corresponds to BatchGetItem

batchWrite([operations], [tables], callback)

Corresponds to BatchWriteItem

createTable(readCapacity, writeCapacity, [indexes], [options], callback)

Corresponds to CreateTable

updateTable(readCapacity, writeCapacity, [options], callback)

Corresponds to UpdateTable

describeTable([options], callback)

Corresponds to DescribeTable

deleteTable([options], callback)

Corresponds to DeleteTable

listTables([options], callback)

Corresponds to ListTables

increment(key, attr, [incrAmt], [options], callback)

Helper to increment an attribute by a certain amount


Maps a JavaScript object to a DynamoDB-friendly object


Maps a DynamoDB object to a JavaScript object

mapAttrToDb(val, [key], [jsObj])

Maps an individual attribute/value to a DynamoDB-friendly attribute

mapAttrFromDb(val, [key], [dbItem])

Maps an individual DynamoDB attribute to a JavaScript value


With npm do:

npm install dynamo-table


Thanks to @jed for his lightweight dynamo-client lib!