A builder library for dynamodb
var Builder = require('dynamodbuilder');
var dynamodb = require('aws').DynamoDB({
accessKeyId: '<id>',
secretAccessKey: '<secret>',
region: '<region>'
});
var builder = new Builder();
var query = builder.query('myTable');
// Using strings
var queryObj = query
.keyConditionExpression('firstName = :name')
.expressionAttributeValue(':name', 'mike')
.limit(100)
.create();
dynamodb.query(queryObj, function(err, data){})
// Using condition objects
query = builder.query('myTable');
var conditions = [
{ key: 'firstName', operator: '=', value: 'mike'},
{ key: 'lastName', operator: '=', value: 'miller'}
];
var queryObj = query
.keyConditionExpression(conditions)
.indexName('myTable-firstNameIndex')
.scanIndexForward(false)
.limit(100)
.create();
dynamodb.query(queryObj, function(err, data){})
Sets the tableName of the query. This is set automatically when
builder.query("myTable")
is called.
tableName
- The table name.
Sets the index of the query.
indexName
- The index to use.
Should results be returned in ascending or descending order.
bool
- should results be returned in ascending order.
Max number of records to return.
limit
- The max number of records to return.
Sets the KeyConditionExpression field. There are several different ways to call this function. See details below
conditionSting
- A valid condition expression (i.e.)"name = :theName"
Note: when called this way you must call query.expressionAttributeValue(...)
to manually set the expressionAttribute.
conditionExpressionObj
- A condition expression object.- Example:
{key: 'name', operator: "=", value: 'mike' }
- Note: When called this way an expression attribute value is automatically added to the query.
- Example:
Same as above except an array of conditionExpressionObjs can be passed in.
All of the conditions will be and
ed together.
Follows the same pattern as query.keyConditionExpression(...)
except the
FilterExpression is updated instead of the KeyConditionExpression.
- varName - the name of the variable used in your expression (i.e.
:theName
) - value - The value being passed.
Returns a json object that can be passed as a dynamodb query.