我如何查找和更新许多文档?

时间:2019-04-29 17:19:13

标签: node.js mongodb

我想在某些条件下更新find查询的结果。现在我在想的是mongodb将搜索整个集合以查找和更新或使用以前的find查询的指针。我只是想乐观我的查询为什么我在考虑它。总有办法实现吗?

更新:我也想要这些文件。

ex-collection.find({conditions})。foreach({将根据其调用更新的某些条件})

现在我想要的是将从foreach函数调用的更新查询使用以前查找查询中的指针,而不是再次搜索集合。

我的意思是,当我们第一次使用find查询时,我们搜索集合并返回一个游标,该游标是指向内存中集合的指针。现在我们有了该指针,为什么我们不能用它来更新文档而不是再次搜索集合然后进行更新。

1 个答案:

答案 0 :(得分:0)

如果要保留代码,可以使用:

collection.find({conditions}).foreach((doc) => {
       if (some_conditions) {
          return collection.findOneAndUpdate({_id: doc._id}, {$set: {updated_fields});
       }   
})

但是正如评论中提到的那样,我不确定确切需要满足哪些条件,但是您可以只使用update方法来节省时间。