使用KeyConditionExpression进行dynamodb查询的问题

尝试按照使用nodejs sdk的dynamodb api 文档来使用KeyConditionExpression。 KeyConditionExpression不受Nodejs SDK的支持。

这是我做的

用哈希和范围创build一个表。

Table : TABLE1 Hash Attribute Name : Provider ( String) Range Attribute Key : ScheduledEndTime ( Number ) // In Milli Seconds 

这里是有效载荷来触发发电机数据库查询:

 { TableName: 'TABLE1', ConsistentRead: true, Select: "ALL_ATTRIBUTES", KeyConditionExpression: 'Provider = :v_provider AND ScheduledEndTime > :v_scheduledEndTime', ExpressionAttributeValues: { ":v_provider": { S: "amazon" }, ":v_scheduledEndTime": { N: "10" } } }; 

但是,上述有效负载抛出错误

 [Error: MultipleValidationErrors: There were 2 validation errors: * MissingRequiredParameter: Missing required key 'KeyConditions' in params * UnexpectedParameter: Unexpected key 'KeyConditionExpression' found in params] [Error: MultipleValidationErrors: There were 2 validation errors: * MissingRequiredParameter: Missing required key 'KeyConditions' in params * UnexpectedParameter: Unexpected key 'KeyConditionExpression' found in params] 

根据文档,如果我们使用KeyConditionExpression,SDK不应该考虑KeyConditions键,我也尝试使用最新的nodejs sdk。 有效载荷模式有什么错误吗?

我认为有些地方(特别是Lambda)默认给你错误的API版本。 当我遇到这个问题时,用下面的代替我的发电机实例解决了这个问题:

 var AWS = require("aws-sdk"); var dynamo = new AWS.DynamoDB({apiVersion: '2012-08-10'});