gpt4 book ai didi

node.js - MongoDB 在单个查询中更新多行

转载 作者:可可西里 更新时间:2023-11-01 09:56:56 24 4
gpt4 key购买 nike

我有一个包含以下文档的集合

{
"_id" : 1,
"item" : "item1",
"stock" : 184
}
{
"_id" : 2,
"item" : "item2",
"stock" : 330
}
{
"_id" : 3,
"item" : "item3",
"stock" : 140
}

我想像这样使用单个查询更新此集合。

{
"_id" : 1,
"item" : "item1",
"stock" : 80
}
{
"_id" : 2,
"item" : "item2",
"stock" : 60
}
{
"_id" : 3,
"item" : "item3",
"stock" : 170
}

我可以使用 forEach 来完成,但我必须一次更新数千条记录,这会很耗时。那么MongoDB有这个功能吗?

非常感谢您的帮助。

最佳答案

您可以使用 bulk operation在 nodejs 中通过 Collection.initializeUnorderedBulkOp

var bulkOp = yourCollection.initializeUnorderedBulkOp();

bulkOp.find({ _id: 1 }).updateOne({ /* update document */ });
bulkOp.find({ _id: 2 }).updateOne({ /* update document */ });
// etc

bulkOp.execute();

您可以根据需要构建它,然后让数据库一次完成所有工作。

关于node.js - MongoDB 在单个查询中更新多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52849452/

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