【发布时间】:2020-04-30 17:52:30
【问题描述】:
我有一个 DynamoDB 表,我想在其中返回 Review.ID 映射值等于 123 的所有项目。
Item: {
id: 1,
review: {
Id: 123,
step1: 456,
step2: 789,
step3: 1234,
},
// Add more items here
},
Item: {
id: 2,
review: {
Id: 123,
step1: 999,
step2: 888,
step3: 777,
},
// Add more items here
},
理想返回示例:
id: 1,
review: {
- id: 123,
- step: 456,
- step2: 789,
- step3: 1234,
}
id: 2,
review: {
- id: 123,
- step: 999,
- step2: 888,
- step3: 777,
}
这是我当前在 NodeJS 中的代码
exports.handler = async (event, context, callback) => {
const params = {
FilterExpression: "review.Id = :review",
ExpressionAttributeValues: {
":review": 123,
},
TableName: "sometable"
};
let promise = dynamoDb.scan(params).promise();
let result = await promise;
let data = result.Items;
if (result.LastEvaluatedKey) {
params.ExclusiveStartKey = result.LastEvaluatedKey;
data = data.concat(await (params));
}
// create a response
const response = {
statusCode: 200,
body: JSON.stringify(data),
};
callback(null, response);
};
运行此代码,我得到一个空结果 []。
对此的任何帮助将不胜感激。
【问题讨论】:
-
紧跟在
await promise之后的result是什么样的?与您的问题无关,您希望await (params)做什么? -
目前它只是空的 [] 但我期待等待承诺最终在查询后返回值。
-
这就是 after await 的值。它不会改变。
标签: javascript node.js amazon-web-services amazon-dynamodb