AWS dynamoDB按日期查询

问题描述 投票:0回答:1

我正在尝试查询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?谢谢

amazon-web-services date amazon-dynamodb
1个回答
2
投票

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

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

例如:

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

© www.soinside.com 2019 - 2024. All rights reserved.