MongoDB更新操作是否支持批量提交?
当我像这样更新MongoDB时:MongoDB更新操作是否支持批量提交?,mongodb,mongodb-query,Mongodb,Mongodb Query,当我像这样更新MongoDB时: collection.update(query,data,true,false); 每次我只能向mongo提交一个更新操作,性能非常差。与此操作类似,是否有批提交操作 我相信在MongoDB中,它被称为批量操作 您可以执行批量查找和更新操作,查找与查询匹配的所有记录,并相应地更新结果 这里有一个来自中国的例子 简而言之,在“现代驱动程序”中,确实如此,这就是现代驱动程序版本的意图 我们在这里讨论的是MongoDB 2.6中引入的。在引入时,MongoD
collection.update(query,data,true,false);
每次我只能向mongo提交一个更新操作,性能非常差。与此操作类似,是否有批提交操作 我相信在MongoDB中,它被称为批量操作 您可以执行批量查找和更新操作,查找与查询匹配的所有记录,并相应地更新结果 这里有一个来自中国的例子 简而言之,在“现代驱动程序”中,确实如此,这就是现代驱动程序版本的意图 我们在这里讨论的是MongoDB 2.6中引入的。在引入时,MongoDB“shell”等工具引入了这些方法的使用(甚至是“单一”操作),可以说是“隐藏”的,因此,在服务器版本被认为通过适当的测试支持这些方法的情况下,实际调用这些方法 在MongoDB 3.0.x发行版系列中,驱动程序已经过“大修”,以实现以类似方式适当使用这些“批量API”方法的方法 通常的方法是使用不同的签名,例如
.update\u one()
或类似的签名。此外,从“不同的类”到先前驱动程序版本中存在的“遗留”实现,通常都可以观察到这些问题
因此,现代的和“不断发展的”考虑因素是在适用的情况下,默认情况下将这些方法用于新方法。但也要“区分”不同的方法,以免在可能的情况下导致向后兼容性中断
您可以在驱动程序版本和服务器兼容性允许的情况下明确使用“批量”方法,也可以在更现代的驱动程序中使用“新”方法,这与您安装的驱动程序相适应。谢谢您-我将修改我的评论。
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();