我是mongodb的新手,想在我的项目中实现拥有数百万条记录的mongodb。想知道我应该更喜欢更新-bulk.find.update()vs update.collection,其中multi = true表示
答案 0 :(得分:1)
据我所知,Bulk
提供的最大收益是:
批量操作只向MongoDB发送一个请求,以查看批量中的所有请求。其他人针对每个文档发送请求,或仅针对insert
,update
,updateOne
,upsert
之一update
操作和{{1}发送一种操作类型}}。
批量可以在代码页的不同行处理很多不同的案例。
批量操作可以异步工作。其他人不能。
但是今天有些操作基于remove
。例如bulk
。
如果考虑了上述收益,insertMany
必须在update()
操作中显示相同的效果结果。
因为bulk.find.update()
只能将一个查询对象发送到MongoDB。 update()
只是一个参数,它指定必须更新所有匹配的文档。这意味着它只在网络上发出一个请求。就像multi: true
操作一样。
因此,两者都只向MongoDB发送一个请求,而MongoDB会对查询子句进行评估,以查找要更新的文档然后更新它们。
我曾试图在MongoDB官方网站上找到这个问题的答案,但我不能。
所以,来自@AsyaKamsky的解释会很棒!