我想在某些条件下更新find查询的结果。现在我在想的是mongodb将搜索整个集合以查找和更新或使用以前的find查询的指针。我只是想乐观我的查询为什么我在考虑它。总有办法实现吗?
更新:我也想要这些文件。
ex-collection.find({conditions})。foreach({将根据其调用更新的某些条件})
现在我想要的是将从foreach函数调用的更新查询使用以前查找查询中的指针,而不是再次搜索集合。
我的意思是,当我们第一次使用find查询时,我们搜索集合并返回一个游标,该游标是指向内存中集合的指针。现在我们有了该指针,为什么我们不能用它来更新文档而不是再次搜索集合然后进行更新。
答案 0 :(得分:0)
如果要保留代码,可以使用:
collection.find({conditions}).foreach((doc) => {
if (some_conditions) {
return collection.findOneAndUpdate({_id: doc._id}, {$set: {updated_fields});
}
})
但是正如评论中提到的那样,我不确定确切需要满足哪些条件,但是您可以只使用update
方法来节省时间。