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

时间:2016-02-04 15:55:30

标签: performance mongodb mongodb-query updates

我是mongodb的新手,想在我的项目中实现拥有数百万条记录的mongodb。想知道我应该更喜欢更新-bulk.find.update()vs update.collection,其中multi = true表示

1 个答案:

答案 0 :(得分:1)

据我所知,Bulk提供的最大收益是:

  1. 批量操作只向MongoDB发送一个请求,以查看批量中的所有请求。其他人针对每个文档发送请求,或仅针对insertupdateupdateOneupsert之一update操作和{{1}发送一种操作类型}}。

  2. 批量可以在代码页的不同行处理很多不同的案例。

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

  4. 但是今天有些操作基于remove。例如bulk

    如果考虑了上述收益,insertMany必须在update()操作中显示相同的效果结果。

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

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

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

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