AWS dynamoDB按日期查询

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AWS 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?谢谢

答案

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

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

例如:

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

以上是关于AWS dynamoDB按日期查询的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 AWS Lambda 按名称查询 dynamoDB 表

按日期查询DynamoDB

如何按日期(范围键)查询 DynamoDB,没有明显的哈希键?

AWS DynamoDB 查询不显示用户数据,除非具有管理员权限

DynamoDB 流 和 AWS Lambda 触发器

带有键条件表达式的 AWS DynamoDB 查询出错:不支持查询键条件