gpt4 book ai didi

node.js - 如何增加批量数组字段 mongodb 上的计数器

转载 作者:太空宇宙 更新时间:2023-11-04 01:53:55 24 4
gpt4 key购买 nike

我有一个像这样的数据集:

{
"_id" : ObjectId("2q9abf6b3b758dbed05d4875"),
"fruit" : "APPLE",
"count" : 0,
},
{
"_id" : ObjectId("2q9abf6b3b758dbed05d4876"),
"fruit" : "MANGO",
"count" : 0,
},
{
"_id" : ObjectId("2q9abf6b3b758dbed05d4877"),
"fruit" : "BANANA",
"count" : 0,
}

我想让计数器加 1,这是我已经知道的。我的问题是如何批量增加计数器。

假设我有一个数组,其值为

array = ['APPLE', 'BANANA'];

现在我只想增加数组中存在的那些元素的计数器。

所以在数组之后,期望的结果将是这样的。

{
"_id" : ObjectId("2q9abf6b3b758dbed05d4875"),
"fruit" : "APPLE",
"count" : 1,
},
{
"_id" : ObjectId("2q9abf6b3b758dbed05d4876"),
"fruit" : "MANGO",
"count" : 0,
},
{
"_id" : ObjectId("2q9abf6b3b758dbed05d4877"),
"fruit" : "BANANA",
"count" : 1,
}

注意:这只是一个基本示例。数组最多可以容纳 50 个条目或更多。最好的方法是什么。我在 Nodejs-Express 环境中使用 mongoose for MongoDB。如有任何帮助,我们将不胜感激。

最佳答案

一种可能的方法是在数据库中查询所有包含与您拥有的数组中的任何值相匹配的水果值的文档。然后循环返回的对象数组。

YourModel.find({fruit: { $in: yourArray }}, function(err, foundFruits){
if (err){
//handle error
}
foundFruits.forEach(function(fruit){
//make all the changes you want to make here
//for example, incrementing counter:
fruit.counter += 1;
fruit.save();
});
});

请注意,如果您只想增加计数器,而没有其他更改,那么您可以简单地使用 update查询中的选项,或者按照 chridam 的建议,使用 $inc 选项

关于node.js - 如何增加批量数组字段 mongodb 上的计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48662748/

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