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 is a mongosh method. 这是一种mongosh方法。This is not the documentation for Node.js or other programming language specific driver methods.这不是Node.js或其他特定于编程语言的驱动程序方法的文档。

In most cases, mongosh methods work the same way as the legacy mongo shell methods. However, some legacy methods are unavailable in mongosh.

For the legacy mongo shell documentation, refer to the documentation for the corresponding MongoDB Server release:

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

Initializes and returns a new Bulk() operations builder for a collection. 初始化并返回集合的新Bulk()操作生成器。The builder constructs an unordered list of write operations that MongoDB executes in 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();
←  db.collection.initializeOrderedBulkOp()Bulk() →