Starting in version 3.2, MongoDB also provides the
db.collection.bulkWrite() method for performing bulk write operations.
With an ordered operations list, MongoDB executes the write operations in the list serially.
When executing an
ordered list of operations, MongoDB groups the operations by the
operation type and contiguity; i.e. contiguous operations of the same type are grouped together. For example, if an ordered list has two insert operations followed by an update operation followed by another insert operation, MongoDB groups the operations into three separate groups: first group contains the two insert operations, second group contains the update operation, and the third group contains the last insert operation. This behavior is subject to change in future versions.
Each group of operations can have at most
1000 operations. If a group exceeds this
limit, MongoDB will divide the group into smaller groups of 1000 or less. For example, if the bulk operations list consists of 2000 insert operations, MongoDB creates 2 groups, each with 1000 operations.
The sizes and grouping mechanics are internal performance details and are subject to change in future versions.
To see how the operations are grouped for a bulk operation execution, call
Bulk.getOperations() after the execution.
ordered list of operations on a sharded collection will generally be slower than executing an
unordered list since with an ordered list, each operation must wait for the previous operation to finish.