db.collection.initializeUnorderedBulkOp()

在本页面

Tip

从 3.2 版开始,MongoDB 还提供了db.collection.bulkWrite()方法来执行批量写入操作。

Definition

初始化并为集合返回一个新的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();
首页