AWS DynamoDB和Nodejs集成 - 如何在两个日期之间进行过滤?

时间:2016-05-31 16:50:45

标签: node.js amazon-web-services amazon-dynamodb

我有一个连接到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",

我认为我在过滤器表达式中遗漏了一些我没有完全掌握的东西。

有人可以帮忙吗?

1 个答案:

答案 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