尝试使用nodejs-sdk根据dynawdb api文档使用KeyConditionExpression。nodejs SDK不支持KeyConditionExpression。
以下是我做的
创建了一个具有哈希和范围的表。
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'});