gpt4 book ai didi

node.js - Query() DynamoDB 查询 Lambda NodeJS 上数组中的每个值

转载 作者:太空宇宙 更新时间:2023-11-04 03:12:48 25 4
gpt4 key购买 nike

我在 NodeJS 12x Lambda 函数中有以下代码:

targetedAliases = ["abc", "efg"]; //Not used yet. But want to replace alias with this array.
alias = "abc" //using this one aka targetedAliases[0].

const dynamoDB = new AWS.DynamoDB({
apiVersion: "2012-10-08"
});
var aliasScores;


const params = {
TableName: 'a-table',
FilterExpression: '#alias = :alias',
ExpressionAttributeNames: {
'#alias': 'alias',
},
ExpressionAttributeValues: {
':alias': {
S: alias
},
}
};

aliasScores = await dynamoDB.scan(params).promise();

console.log("====> ", aliasScores);

该函数按预期打印 aliasScores 的内容,但我需要为 targetedAliases 数组上的每个项目执行此 n 次。

有没有办法可以使用 Array.forEach 或类似的方法对数组中的每个项目迭代执行查询/扫描?或者,我可以在 FilterExpression 上使用数组来执行一次查询/扫描吗?

我希望将每个查询/扫描结果存储在 aliasScores 变量中,作为所有返回对象的串联,以便在下面进一步使用它。

最佳答案

您可以将 Promise.all.map 一起使用来并行执行这些操作并以数组形式获取结果。像这样的事情

const targetedAliases = ["abc", "efg"]; //Not used yet. But want to replace alias with this array.
alias = "abc" //using this one aka targetedAliases[0].

const dynamoDB = new AWS.DynamoDB({
apiVersion: "2012-10-08"
});
var aliasScores;

const result = await Promise.all(targetedAliases.map(alias => {
const params = {
TableName: 'a-table',
FilterExpression: '#alias = :alias',
ExpressionAttributeNames: {
'#alias': 'alias',
},
ExpressionAttributeValues: {
':alias': {
S: alias
},
}
};

return dynamoDB.scan(params).promise();
}));

console.log(result);

关于node.js - Query() DynamoDB 查询 Lambda NodeJS 上数组中的每个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60421258/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com