使用forEach的MongoDB批量更新效率
您将如何处理批量/批量更新文档(最多10000个文档)以及使用forEach的MongoDB批量更新效率,mongodb,foreach,bulkupdate,Mongodb,Foreach,Bulkupdate,您将如何处理批量/批量更新文档(最多10000个文档)以及forEach? (无需更新特定标准,用于随机文档选择) 我考虑两种选择: 将forEach闭包中的所有文档\u id收集到一个数组中,然后使用 collection.update({{u id:{$in:idsArray}},…) 将forEach闭包中的更新查询添加到批量操作中,并在完成后执行 bulk.find({u id:doc.id}).updateOne({…}); bulk.execute() 我将很快对此进行基准测试,但我
forEach
?
(无需更新特定标准,用于随机文档选择)
我考虑两种选择:
forEach
闭包中的所有文档\u id
收集到一个数组中,然后使用
collection.update({{u id:{$in:idsArray}},…)
forEach
闭包中的更新查询添加到批量操作中,并在完成后执行
bulk.find({u id:doc.id}).updateOne({…});
bulk.execute()代码>
我将很快对此进行基准测试,但我想知道什么样的I/O效率更高,并且被认为是Mongo的“智能”。好的,因此我对这两个选项进行了基准测试 TL;DR选项1的速度是前者的两倍,因此收集ID并更新一次 有关以下内容的更多详细信息,以供将来参考:
- 数据库中的文件总数约为500k
- 文档每个包含大约20-25个字段
- 对10-30k文档进行了更新