mongo中的bulk.find.update()vs update.collection(multi = true)

Var*_*ngh 6 performance updates mongodb mongodb-query

我是mongodb的新手,并希望在我的项目中实现拥有数百万条记录的mongodb.想知道我应该更喜欢更新-bulk.find.update()与update.collection以及multi = true的性能.

efk*_*kan 4

据我所知,最大的收获Bulk是:

  1. 对于批量的所有请求,批量操作仅向 MongoDB 发送一个请求。其他人为每个文档发送一个请求,或者仅发送来自insert, update, updateOne,操作 和upsert的一种操作类型。updateremove

  2. Bulk 可以在代码页的不同行处理许多不同的情况。

  3. 批量操作可以异步工作。其他人则不能。

但今天有些操作bulk是基于工作的。例如insertMany

如果考虑到上述增益,则update()必须显示与操作相同的性能结果bulk.find.update()

因为update()只能将一个查询对象发送到 MongoDB。并且multi: true只是一个参数,指定必须更新所有匹配的文档。这意味着它只在网络上发出一个请求。就像Bulk运营一样。

因此,两者都只向 MongoDB 发送一个请求,MongoDB 会评估查询子句以查找要更新的文档,然后更新它们!

我曾尝试在 MongoDB 官方网站上找到这个问题的答案,但找不到。

所以,@AsyaKamsky 的解释会很棒!