使用对象外部的变量作为对象变量



我有这样的代码

for (var i = 0; i < lootbox.length; i++) {
const { type } = lootbox[i]
const query = type + "_lootbox.hunt";
await lb.findOneAndUpdate(
{ userID: message.author.id },
{ $inc: { query: 1 } }
);
}

代码读取query作为自己的变量而不是type + "_lootbox.hunt",是否有办法在$inc内使用该查询?因为我想使用循环

自动执行它又名。动态对象键

这里的问题是,您正在尝试动态地创建一个对象,但是您不能动态地设置一个键。

要做到这一点,你需要在使用前准备好这个对象。

在这种情况下,你的代码应该是这样的,
for (var i = 0; i < lootbox.length; i++) {
const { type } = lootbox[i]
const query = type + "_lootbox.hunt";
const tempObject = {}; // Creating an empty Object
tempObject[query] = 1; // Dynamic key usage
await lb.findOneAndUpdate(
{ userID: message.author.id },
{ $inc: tempObject } // Using the tempObject
);
}

据我所知,你想要的是:在每一次迭代中,query变成type + "_lootbox.hunt",例如page1_lootbox.hunt。你想得到的是{ $inc: { "page1_lootbox.hunt": 1 }}。如果是这样,一个简单的解决方案就是

{ $inc: { [query]: 1 } }    // { $inc: { "page1_lootbox.hunt": 1 } }

如果你想要不同的,请告诉我。

相关内容

  • 没有找到相关文章

最新更新