javascript - 具有不同值的 Mongodb 多更新

标签 javascript node.js mongodb nosql

我在 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/

相关文章:

javascript 二维数组错误

javascript - 使用粘性滚动菜单链接打开 Accordion 菜单项

node.js - 如何在前一个函数完成之前阻止一个函数? Node

mongodb - NoSQL(MongoDB) 中的提交和磁盘持久化

javascript - WEB AUDIO API 产生雨噼啪声

javascript - 以下代码中 'WL'是哪个库

node.js - npm 安装 google-cloud 失败

javascript - npm:在上下文中执行?

javascript - 如何通过键从 MongoDB 集合中删除字段?

node.js - 返回查找查询中的整个文档 - Mongodb