更新多个文档并返回所有更新的文档
我正在寻找一种方法来使用mongoose
一次更新许多文件,并返回所有修改后的文件。 我尝试在update()中设置multi:true
。 它正在更新所有匹配的文件,但不返回任何。 然后我试着用findOneAndUpdate() 。 即使有许多匹配的文件,它也只是更新和返回一个文件。 是的,函数名称本身告诉,它只会更新一个,我仍然尝试。 我无法在findOneAndUpdate()
设置multi:true
。 如何做呢? 提前致谢
目前我不认为它可能在MongoDB中更新多个文档,并在同一个查询中返回所有更新的文档。
在Mongoose中, findOneAndUpdate()
基于MongoDB的本地findAndModify()
方法。
如果你检查findAndModify()
方法的官方文档 ,它的状态 –
findAndModify命令修改并返回单个文档。
尽pipe查询可能匹配多个文档,findAndModify将只select一个文档进行修改。
因此,您无法使用findAndModify
更新多个文档。
另一方面, update()
或updateMany()
方法使用multi
标志更新许多文档,但它只返回看起来像这样的WriteResult –
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })