概要
Node.jsでDynamoDBからscanしようとしたら、予約語を使っていたため怒られた
間違った例
var dynamodb = AWS.DynamoDB();
var params = {
TableName : "a_table",
ProjectionExpression : "DateTime,Attr1,Attr2",
};
dynamodb.scan(params, function(err, data) {
if (err) return console.log(err, err.stack);
console.log(data.Items);
});
ValidationException: Invalid KeyConditionExpression: Attribute name is a reserved keyword; reserved keyword: DateTime
正しい例
var dynamodb = AWS.DynamoDB();
var params = {
TableName : "a_table",
ProjectionExpression : "#dt,Attr1,Attr2",
ExpressionAttributeNames : {
"#dt" : ATTR_DATE_TIME,
},
};
dynamodb.scan(params, function(err, data) {
if (err) return console.log(err, err.stack);
console.log(data.Items);
});