更新多个文档并返回所有更新的文档

我正在寻找一种方法来使用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 })