如何解决此DynamoDb查询“查询条件缺少关键架构元素”有什么问题?
我希望这是我真的很想念的东西,因为我是DynamoDb和nodeJ的新手。
我有一个具有 id , siteId 的表。
这些用于创建名为 IdxSiteId 的全局二级索引。
我需要能够使用siteId来获取其他一些Item的值(屏幕快照中未显示)。阅读东西最好的选择是使用Query而不是GetItemBatch或Scan。通过跟踪和错误到达了这一点。
const getWarnings = async (siteId) => {
const params = {
TableName: process.env.WARNINGS_TABLE_NAME,IndexName: 'IdxSiteId',KeyConditionExpression: 'SiteId = :var_siteId',ExpressionAttributeValues: {
':var_siteId': siteId
},ProjectionExpression: 'id,endTime,startTime,warningSubType',ScanIndexForward: false
};
return new DynamoDB.DocumentClient().query(params).promise();
};
虽然这是最接近工作的状态,但出现以下错误Error retrieving current warnings ValidationException: Query condition missed key schema element: siteId
,并在线查看示例,我不知道此时我在做什么错。
正如我说的那样,我确定这是非常简单的,但是我真的可以使用指针。
解决方法
字段名称区分大小写。您的GSI分区键是siteId
。您的查询是SiteId = :var_siteId
。应该是siteId = :var_siteId
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。