我有一个包含以下文档的集合
{
"_id" : 1,
"item" : "item1",
"stock" : 184
}
{
"_id" : 2,
"item" : "item2",
"stock" : 330
}
{
"_id" : 3,
"item" : "item3",
"stock" : 140
}
Run Code Online (Sandbox Code Playgroud)
我想使用单个查询更新此集合.
{
"_id" : 1,
"item" : "item1",
"stock" : 80
}
{
"_id" : 2,
"item" : "item2",
"stock" : 60
}
{
"_id" : 3,
"item" : "item3",
"stock" : 170
}
Run Code Online (Sandbox Code Playgroud)
我可以使用它,forEach但我必须一次更新数千条记录,这将耗费时间.那么MongoDB有这个功能吗?
我们将非常感谢您的帮助.
您可以在nodejs中使用批量操作Collection.initializeUnorderedBulkOp
var bulkOp = yourCollection.initializeUnorderedBulkOp();
bulkOp.find({ _id: 1 }).updateOne({ /* update document */ });
bulkOp.find({ _id: 2 }).updateOne({ /* update document */ });
// etc
bulkOp.execute();
Run Code Online (Sandbox Code Playgroud)
您可以根据需要构建它,然后让数据库一次完成所有操作.
| 归档时间: |
|
| 查看次数: |
588 次 |
| 最近记录: |