mongo DB中update和updateMany方法有什么区别?

Tek*_*tel 22 mongodb node.js

我正在尝试更新mongo db上的多个文档.哪个是使用multi = true或updateMany方法更好的更新方法?它们之间有什么区别?

Ska*_*ami 7

Blakes Seven的回答中,所有updateon方法都只是将multi选项设置为false,如此处所示(github).

反过来,所有updateMany方法都将multiopion 设置为true,如此处所示(github).

因此,没有"更好"的方法可以调用,只需选择您认为适合的情况.


小智 7

不同之处在于update(),默认情况下,仅修改与指定过滤器匹配的一个文档。但是,您可以通过添加modifier {multi: true}. updateMany另一方面,修改与指定过滤器匹配的所有文档。


Qua*_*Van 6

\xe2\x80\x9cupdateOne\xe2\x80\x9d 和 \xe2\x80\x9cupdateMany\xe2\x80\x9d 是较新的 API,如果可能,应使用而不是 \xe2\x80\x9cupdate\xe2\x80\x9d。

\n

在\xe2\x80\x9cMongo Definitive Guide\xe2\x80\x9d一书中(在谈论\xe2\x80\x9cupdateOne\xe2\x80\x9d时):

\n

\xe2\x80\x9c更新文档必须包含更新运算符。以前版本的 CRUD API 无法捕获此类错误。在这种情况下,早期的更新方法只会完成整个文档的替换。正是这种类型的陷阱导致了新的 CRUD API 的创建。\xe2\x80\x9d

\n

\xe2\x80\x94 MongoDB:权威指南:强大且可扩展的数据存储 作者:Shannon Bradshaw、Eoin Brazil 等人。

\n