我是mongodb的新手,想在我的拥有数百万条记录的项目中实现mongodb。想知道在更新时应该选择什么 -bulk.find.update()还是update.collection并设置multi = true以获得更好的性能。
我是mongodb的新手,想在我的拥有数百万条记录的项目中实现mongodb。想知道在更新时应该选择什么 -bulk.find.update()还是update.collection并设置multi = true以获得更好的性能。
Bulk
提供的最大优势如下:
批量操作仅向 MongoDB 发送一个请求以处理所有请求。其他操作则会对每个文档发送一个请求,或者仅针对一种操作类型(如 insert
、update
、updateOne
、upsert
中的 update
操作和 remove
)发送请求。
批量操作可以在代码页的不同行上处理许多不同的情况。
批量操作可以异步工作,而其他操作则不能。
但是今天有些操作是基于 bulk
进行的,例如 insertMany
。
如果考虑到以上优点,update()
必须显示与 bulk.find.update()
操作相同的性能结果。
因为 update()
只能发送一个查询对象到 MongoDB。而 multi: true
只是一个参数,指定所有匹配的文档都必须更新。这意味着它只在网络上发出一个请求,就像 Bulk
操作一样。
因此,它们都只向 MongoDB 发送一个请求,MongoDB 评估查询子句以查找将要更新的文档,然后更新它们!
我曾试图在 MongoDB 官方网站上寻找这个问题的答案,但没有找到。
因此,@AsyaKamsky 的解释将是很好的!