Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB更新操作是否支持批量提交?_Mongodb_Mongodb Query - Fatal编程技术网

MongoDB更新操作是否支持批量提交?

MongoDB更新操作是否支持批量提交?,mongodb,mongodb-query,Mongodb,Mongodb Query,当我像这样更新MongoDB时: collection.update(query,data,true,false); 每次我只能向mongo提交一个更新操作,性能非常差。与此操作类似,是否有批提交操作 我相信在MongoDB中,它被称为批量操作 您可以执行批量查找和更新操作,查找与查询匹配的所有记录,并相应地更新结果 这里有一个来自中国的例子 简而言之,在“现代驱动程序”中,确实如此,这就是现代驱动程序版本的意图 我们在这里讨论的是MongoDB 2.6中引入的。在引入时,MongoD

当我像这样更新MongoDB时:

    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();