dynamo-table
v0.8.3
Published
Maps JS objects and queries to DynamoDB tables
Downloads
283
Readme
dynamo-table
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.
Example
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
console.log(items)
// [{customerId: 23, orderId: 102, lineItemIds: [4, 5, 6]}]
})
})
})
API
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
mapToDb(jsObj)
Maps a JavaScript object to a DynamoDB-friendly object
mapFromDb(dbItem)
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
Installation
With npm do:
npm install dynamo-table
Thanks
Thanks to @jed for his lightweight dynamo-client lib!