我想在AWS Lambda中使用查询来过滤DynamoDB中的条目。我想收到两个数字之间的条目。我的数据库如下所示:
这些是我查询的参数:
var params = {
TableName: "tableName",
KeyConditions: {
'date': {
ComparisonOperator: "BETWEEN",
AttributeValueList: [30, 100]
}
}
};
docClient.query(params, function(err, resp) {
if (err) {
_response = buildOutput(500, err);
return callback(_response, null);
}
_response = buildOutput(200, resp);
return callback(null, _response);
});
我收到以下错误消息,但我不知道params中缺少什么
响应:{“message”:“查询条件错过了关键架构元素:id”
提前致谢!
答案 0 :(得分:0)
要使用Query API,您需要在KeyConditions
中提及哈希键。根据您的表定义,id
似乎是表的哈希键属性。散列键是使用Query API的必需属性。您应该提供散列键的值,即Id
,以便使用查询API。
如果您不知道哈希密钥,则可能需要使用扫描API 来获取数据。
同样,您无法在不知道表的哈希键的情况下使用查询API。即使如果您不知道索引的哈希键,创建索引也可能无济于事。