据我了解,MongoDB 支持批量插入,但不支持批量更新。
批量插入数千个文档非常快,但更新数千个文档却非常慢。速度太慢了,我现在使用的解决方法是删除旧文档并批量插入更新的文档。我必须添加一些标志来将它们标记为无效,以及补偿失败的模拟“批量更新”所需的所有内容。 :(
我知道这是一个糟糕且不安全的解决方案,但这是我能够达到所需性能的唯一方法。
如果您知道更好的方法,请帮助我。
谢谢!
最佳答案
只要您使用 MongoDB v2.6 或更高版本,您也可以使用批量操作来执行更新。
示例来自the docs :
var bulk = db.items.initializeUnorderedBulkOp();
bulk.find( { status: "D" } ).update( { $set: { status: "I", points: "0" } } );
bulk.find( { item: null } ).update( { $set: { item: "TBD" } } );
bulk.execute();
关于MongoDB批量更新性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24006706/