我正在尝试查询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?谢谢
答案 0 :(得分:2)
错误消息似乎表明您有一个未使用的ExpressionAttributeValue:from。
您指定的ConditionExpression属性只能用于Update,Delete和PutItem操作。如果createdAt属性是排序键,则需要在KeyConditionExpression中指定它以及oin。
例如:
KeyConditionExpression:'oin =:oin AND createdAt> =:from'