使用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'});
- 带有DynamoDB属性值的Nodejs中的Lambda可能不包含空string
- 当列表可能不存在时,DynamoDB ConditionExpression检查列表
- 扫描两个时间戳之间的查询
- 编写node.js apicallback与否
- Amazon DynamoDB Node.js的地理库
- Node JS和AWS sdk – 具有多个Expected值的putitem不起作用
- 为什么使用Limit和FilterExpression进行DynamoDB扫描不会返回符合filter要求的项目?
- DynamoDB – 如何在一次更新中创build映射并为其添加属性
- NodeJS API通过ID获取。 如何检测项目未find?