AWS dynamoDB按日期查询

时间:2017-12-17 20:46:41

标签: amazon-web-services date amazon-dynamodb

我正在尝试查询dynamoDB中的值,但仍然存在错误。 日期是ISO-8601(String)= createdAt,它是排序键。

我的参数:

{ TableName: 'Pool',
ExpressionAttributeValues: { ':oin': 'lol', ':from': '2017-12-16T20:26:02.594Z' },
KeyConditionExpression: 'oin = :oin',
ConditionExpression: 'createdAt >= :from',
ProjectionExpression: 'createdAt, h10m, h30m, h1h, h24h, accepted, stale, dupl, oth',
ScanIndexForward: false }

我尝试GE的结果相同。

我使用Node.js中的代码生成日期:

var date = new Date();
date.setHours(date.getHours()-24);
var dateiso = date.toISOString();

我收到以下错误:

ValidationException: Value provided in ExpressionAttributeValues unused in expressions: keys: {:from}

任何想法如何解决ConditionExpression?谢谢

1 个答案:

答案 0 :(得分:2)

错误消息似乎表明您有一个未使用的ExpressionAttributeValue:from。

您指定的ConditionExpression属性只能用于Update,Delete和PutItem操作。如果createdAt属性是排序键,则需要在KeyConditionExpression中指定它以及oin。

例如:

KeyConditionExpression:'oin =:oin AND createdAt> =:from'