Docs HomeMongoDB Manual

db.collection.initializeUnorderedBulkOp()

On this page本页内容

Tip

Starting in version 3.2, MongoDB also provides the db.collection.bulkWrite() method for performing bulk write operations.从3.2版本开始,MongoDB还提供了db.collection.bulkWrite()方法来执行批量写入操作。

Definition定义

db.collection.initializeUnorderedBulkOp()
Important

mongosh Method

This page documents a mongosh method. This is not the documentation for a language-specific driver, such as Node.js.

For MongoDB API drivers, refer to the language-specific MongoDB driver documentation.

Initializes and returns a new Bulk() operations builder for a collection. The builder constructs an unordered list of write operations that MongoDB executes in bulk.初始化并返回集合的新Bulk()操作生成器。构建器构建了MongoDB批量执行的写入操作的无序列表。

Behavior行为

Order of Operation操作顺序

With an unordered operations list, MongoDB can execute in parallel the write operations in the list and in any order. 有了无序的操作列表,MongoDB可以并行执行列表中的写操作,并且可以按任何顺序执行。If the order of operations matter, use db.collection.initializeOrderedBulkOp() instead.如果操作顺序很重要,请改用db.collection.initializeOrderedBulkOp()

Execution of Operations操作的执行

When executing an unordered list of operations, MongoDB groups the operations. 当执行一个无序的操作列表时,MongoDB会对操作进行分组。With an unordered bulk operation, the operations in the list may be reordered to increase performance. 对于无序的批量操作,可以对列表中的操作进行重新排序以提高性能。As such, applications should not depend on the ordering when performing unordered bulk operations.因此,应用程序在执行无序的批量操作时不应依赖于排序。

Bulk() operations in mongosh and comparable methods in the drivers do not have a limit for the number of operations in a group. mongosh中的Bulk()操作和驱动程序中的类似方法对组中的操作数量没有限制。To see how the operations are grouped for bulk operation execution, call Bulk.getOperations() after the execution.要查看如何为批量操作执行对操作进行分组,请在执行后调用Bulk.getOperations()

Error Handling错误处理

If an error occurs during the processing of one of the write operations, MongoDB will continue to process remaining write operations in the list.如果在处理其中一个写操作的过程中发生错误,MongoDB将继续处理列表中剩余的写操作。

Example实例

The following initializes a Bulk() operations builder and adds a series of insert operations to add multiple documents:下面初始化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();