Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

A lightweight module to map JS objects and queries to DynamoDB tables


latest commit b5c3ef80db
Michael Hart authored


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!

Something went wrong with that request. Please try again.