MongoDB如何根据对象数组更新多个文档

时间:2018-03-27 13:24:45

标签: node.js mongodb

给定对象数组:

const array = [{_id: 1, name: 'one'}, {_id: 2, name: 'two'}]

如何构建查询,以便更新DB中每个文档的名称字段,其中文档的id等于数组对象中的_id?

这必须在单个查询中完成。 查询必须使用mongoDB节点驱动程序语法。

例如:

// in DB : [{_id: 1, name: null, _id: 2, name: null }]
db.collection('sprints').update(....).then(...)
// after operation:
// in DB: [{_id: 1, name: "one", _id: 2, name: "two" }]

1 个答案:

答案 0 :(得分:1)

你尝试过像这样的结构:

Promise.all(array.map(entry =>
    db.collection('sprints').findOneAndUpdate({ _id: entry._id }, { name: entry.name }).save()
)).then(...);

它不是直接的方式,而是为我工作(在测试用例中)