我有一个连接到DynamoDB的小nodejs脚本,我的一个主要排序键是datetime,用UTC表示。
我想按特定日期和时间过滤结果,并且我的过滤器表达式出现问题。
var params = {
TableName: "realtimeusers",
ProjectionExpression: "brand, datetime, activeusers",
KeyConditionExpression: "brand = :brand",
FilterExpression: "datetime > :today",
ExpressionAttributeValues: {
":brand": "BRAND A",
":today": 1464705900
},
};
我收到错误消息:
"message": "Invalid FilterExpression: Attribute name is a reserved keyword; reserved keyword: datetime",
我认为我在过滤器表达式中遗漏了一些我没有完全掌握的东西。
有人可以帮忙吗?
答案 0 :(得分:1)
“datetime”是保留的dynamo关键字。发电机查询表达式中不允许使用保留关键字。
解决此问题的方法是在查询此类属性时使用Expression属性名称。
参考: http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ExpressionPlaceholders.html#ExpressionAttributeNames