【发布时间】:2021-02-06 14:42:12
【问题描述】:
我希望这真的很简单,因为我是 DynamoDb 和 nodeJs 的新手。
我有一个有 id、siteId 的表。
这些用于创建名为 IdxSiteId 的全局二级索引。
我需要能够使用 siteId 获取其他项目的一些值(屏幕截图中未显示)。阅读内容最好的选择是使用 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 并查看在线示例,我不知道此时我做错了什么。
正如我所说,我确信这非常简单,但我真的可以用指针来做。
【问题讨论】:
标签: database aws-lambda amazon-dynamodb aws-sdk aws-sdk-nodejs