我在 mongodb 中有多个文档要更新,每个文档都必须用不同的值更新。要更新的值在 JSON 数组中可用。
{_id :1 ,name :'A','place':'London'},
{_id :2 ,name :'B','place':'UK'},
{_id :3 ,name :'C','place':'USA'},
{_id :4 ,name :'D','place':'CANADA'},
{_id :5 ,name :'E','place':'India'}
要更新的 JSON 数组:
[{_id :1 ,name :'l','place':'Indonesia'},{_id :2 ,name :'B','place':'UAE'}]
我必须用 json 数组中的新值更新我的集合的 _id 1,2。如果不迭代 json 数组和在一个查询中,我怎么能做到这一点。
最佳答案
如果你正在使用 mongoose 那么你可以试试 bulkWrite方法。 BulkWrite 只向 mongo 发送一个请求。代码看起来像这样:
const itemsToUpdate = [
{ _id: ObjectId('5c6bd4c8716adf072955e855'), status: 'pending' },
{ _id: ObjectId('5c6bd4c8716adf072955e777'), status: 'done' },
];
Model.bulkWrite(
itemsToUpdate.map((item) =>
({
updateOne: {
filter: { _id: item._id },
update: { $set: item }
}
})
)
})
关于javascript - 具有不同值的 Mongodb 多更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20512953/