On this page
db.collection.initializeUnorderedBulkOp()
在本页面
Tip
从 3.2 版开始,MongoDB 还提供了db.collection.bulkWrite()方法来执行批量写入操作。
Definition
db.collection.
initializeUnorderedBulkOp
( )- 2.6 版的新功能。
初始化并为集合返回一个新的Bulk()操作生成器。构建器构造一个 MongoDB 批量执行的写操作的“无序”列表。
Behavior
操作 Sequences
使用无序操作列表,MongoDB 可以按任意 Sequences 并行执行列表中的写操作。如果操作 Sequences 很重要,请改用db.collection.initializeOrderedBulkOp()。
执行作业
在执行unordered操作列表时,MongoDB 将操作分组。对于无序的批量操作,可以对列表中的操作进行重新排序以提高性能。因此,执行unordered批量操作时,应用程序不应依赖于 Sequences。
每组操作最多可以具有1000 operations
。如果一个组超过此limit
,则 MongoDB 将把该组分为 1000 个或更少的较小组。例如,如果批量操作列表包含 2000 个插入操作,则 MongoDB 将创建 2 个组,每个组包含 1000 个操作。
大小和分组机制是内部性能的详细信息,将来可能会更改。
要查看如何对批量操作执行的操作进行分组,请在执行之后*调用Bulk.getOperations()。
Error Handling
如果在写操作之一的处理过程中发生错误,MongoDB 将 continue 处理列表中剩余的写操作。
Example
以下代码初始化Bulk()操作构建器,并添加一系列插入操作以添加多个文档:
var bulk = db.users.initializeUnorderedBulkOp();
bulk.insert( { user: "abc123", status: "A", points: 0 } );
bulk.insert( { user: "ijk123", status: "A", points: 0 } );
bulk.insert( { user: "mop123", status: "P", points: 0 } );
bulk.execute();