Mongo-如何在单个查询中更新具有不同值的多个文档? [英] Mongo - How to update multiple documents with different value in single query?
本文介绍了Mongo-如何在单个查询中更新具有不同值的多个文档?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想编写一个查询来更新单个查询中的多个文档,请建议我可行的方法.
I want to write a query for updating multiple documents in a single query, Please suggest me possible ways.
以下是我的mongo文档.
Following is my mongo document.
[
{
"_id" : ObjectId("5b0f0a2ca1f6633032c204cd"),
"parent_id" : ObjectId("5b0f09e1a1f6633032c204cc"),
"name" : "ABC",
"userType": "admin"
},
{
"_id" : ObjectId("5b0f0a2ca1f6633032c204ce"),
"parent_id" : ObjectId("5b0f09e1a1f6633032c204cc"),
"name" : "DEF",
"userType": "admin"
},
{
"_id" : ObjectId("5b0f0a2ca1f6633032c204cf"),
"parent_id" : ObjectId("5b0f09e1a1f6633032c204cc"),
"name" : "GHI",
"userType": "admin"
},
{
"_id" : ObjectId("5b0f0a2ca1f6633032c204d0"),
"parent_id" : ObjectId("5b0f09e1a1f6633032c204cc"),
"name" : "XYZ",
"userType": "admin"
}
]
我一直在跟踪代码中更新的对象,如何通过查询在数据库中更新该对象.
I've following the updated object in code, how can I update that in a database with the query.
[
{
"_id" : ObjectId("5b0f0a2ca1f6633032c204cd"),
"parent_id" : ObjectId("5b0f09e1a1f6633032c204cc"),
"name" : "ABC123",
"color":"red"
"userType": "admin"
},
{
"_id" : ObjectId("5b0f0a2ca1f6633032c204ce"),
"parent_id" : ObjectId("5b0f09e1a1f6633032c204cc"),
"name" : "DEF123",
"color":"blue"
"userType": "admin"
},
{
"_id" : ObjectId("5b0f0a2ca1f6633032c204cf"),
"parent_id" : ObjectId("5b0f09e1a1f6633032c204cc"),
"name" : "GHI123",
"color":"green"
"userType": "admin"
},
{
"_id" : ObjectId("5b0f0a2ca1f6633032c204d0"),
"parent_id" : ObjectId("5b0f09e1a1f6633032c204cc"),
"name" : "XYZ123",
"color":"rgb(14,256,12, 1)"
"userType": "admin"
}
]
请给我建议正确的方法,否则我们可以做到吗?
Please suggest me the proper ways, or We can do it or not?
推荐答案
您基本上需要 mongodb中的bulkWrite
操作
const array = [
{
"_id" : ObjectId("5b0f0a2ca1f6633032c204cd"),
"parent_id" : ObjectId("5b0f09e1a1f6633032c204cc"),
"name" : "ABC123",
"color":"red"
"userType": "admin"
},
{
"_id" : ObjectId("5b0f0a2ca1f6633032c204ce"),
"parent_id" : ObjectId("5b0f09e1a1f6633032c204cc"),
"name" : "DEF123",
"color":"blue"
"userType": "admin"
},
{
"_id" : ObjectId("5b0f0a2ca1f6633032c204cf"),
"parent_id" : ObjectId("5b0f09e1a1f6633032c204cc"),
"name" : "GHI123",
"color":"green"
"userType": "admin"
},
{
"_id" : ObjectId("5b0f0a2ca1f6633032c204d0"),
"parent_id" : ObjectId("5b0f09e1a1f6633032c204cc"),
"name" : "XYZ123",
"color":"rgb(14,256,12, 1)"
"userType": "admin"
}
]
最后的查询
Model.bulkWrite(
array.map((data) =>
({
updateOne: {
filter: { _id: data._id },
update: { $set: data }
}
})
)
})
这篇关于Mongo-如何在单个查询中更新具有不同值的多个文档?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文