我正在寻找一种方法来更新许多文件一次使用mongoose
和返回所有修改后的文件.我试着把update()分打multi:true
分.它正在更新所有匹配的文档,但不返回任何文档.然后我试着用findOneAndUpdate().它只更新并返回一个文档,即使有许多匹配的文档.是的,函数名本身告诉我们,它只会更新一个,但我还是try 了.我无法将选项设置为findOneAndUpdate()
中的multi:true
.怎么做呢?提前谢谢
我正在寻找一种方法来更新许多文件一次使用mongoose
和返回所有修改后的文件.我试着把update()分打multi:true
分.它正在更新所有匹配的文档,但不返回任何文档.然后我试着用findOneAndUpdate().它只更新并返回一个文档,即使有许多匹配的文档.是的,函数名本身告诉我们,它只会更新一个,但我还是try 了.我无法将选项设置为findOneAndUpdate()
中的multi:true
.怎么做呢?提前谢谢
目前,我认为在MongoDB中不可能更新多个文档并在同一个查询中返回所有更新的文档.
在mongoose 中,findOneAndUpdate()
是基于MongoDB的原生findAndModify()
方法.
如果你查看findAndModify()
方法的官方documentation,它会说-
findAndModify命令修改并返回单个文档.
尽管查询可能匹配多个文档,但findAndModify只会 Select 一个文档进行修改.
因此,不能使用findAndModify
更新多个文档.
另一方面,update()
或updateMany()
方法用multi
标志更新许多文档,但它只返回WriteResult,如下所示-
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })