Performance mongo中bulk.find.update()与update.collection(multi=true)的比较

Performance mongo中bulk.find.update()与update.collection(multi=true)的比较,performance,mongodb,mongodb-query,updates,Performance,Mongodb,Mongodb Query,Updates,我是mongodb的新手,希望在我拥有数百万记录的项目中实现mongodb。我想知道我更喜欢更新-bulk.find.update()与update.collection,multi=true以获得性能。据我所知,bulk提供的最大收益是: 对于批量中的所有请求,批量操作只向MongoDB发送一个请求。其他人针对每个文档发送请求,或仅针对一种操作类型发送请求,这些操作类型来自插入,更新,更新一个,使用更新操作和删除 Bulk可以在代码页的不同行处理许多不同的情况 批量操作可以异步工作。其他人不能

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

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

  • 对于批量中的所有请求,批量操作只向MongoDB发送一个请求。其他人针对每个文档发送请求,或仅针对一种操作类型发送请求,这些操作类型来自
    插入
    更新
    更新一个
    使用
    更新
    操作和
    删除

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

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

  • 但是今天,一些操作是基于
    批量
    的。例如,
    insertMany

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

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

    因此,两者都只向MongoDB发送一个请求,MongoDB计算query子句以查找要更新的文档,然后更新它们

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

    因此,@AsyaKamsky的解释将非常棒