Tip
MongoDB también proporciona el método Mongo.bulkWrite() para realizar operaciones de guardar masiva.
Definición
db.collection.initializeOrderedBulkOp()Importante
Método mongosh
This page documents a
mongoshmethod. This is not the documentation for a language-specific driver, such as Node.js.Para los drivers de API de MongoDB, consulte la documentación del driver de MongoDB específica del lenguaje.
Inicializa y devuelve un nuevo generador de operaciones
Bulk()para una colección. El constructor crea una lista ordenada de operaciones de guardar que MongoDB ejecuta en lote.Devuelve: nuevo objeto constructor de operaciones
Bulk().
Compatibilidad
Este comando está disponible en implementaciones alojadas en los siguientes entornos:
- MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube
Nota
This command is supported in all MongoDB Atlas clusters. For information on Atlas support for all commands, see Unsupported Commands.
Comportamiento
Orden de operaciones
Con una lista de operaciones ordenadas, MongoDB ejecuta las operaciones de guardar en la lista de forma secuencial.
Ejecución de operaciones
Al ejecutar una ordered lista de operaciones, MongoDB las agrupa según la operation type y la contigüidad; es decir, las operacionescontiguas del mismo tipo se agrupan. Por ejemplo, si una lista ordenada tiene dos operaciones de inserción seguidas de una operación de actualización y luego otra de inserción, MongoDB las agrupa en tres grupos separados: el primer grupo contiene las dos operaciones de inserción, el segundo grupo contiene la operación de actualización y el tercer grupo contiene la última operación de inserción. Este comportamiento podría cambiar en futuras versiones.
Bulk() operations in mongosh and comparable methods in the drivers do not have a limit for the number of operations in a group. To see how the operations are grouped for bulk operation execution, call Bulk.getOperations() after the execution.
Executing an 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.
Error Handling
Si se produce un error durante el procesamiento de una de las operaciones de escritura, MongoDB devolverá sin procesar las operaciones de escritura restantes en la lista.
Ejemplos
Lo siguiente inicializa un generador de operaciones Bulk() en la colección users, añade una serie de operaciones de guardar y ejecuta las operaciones:
var bulk = db.users.initializeOrderedBulkOp(); 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.find( { status: "D" } ).delete(); bulk.find( { status: "P" } ).update( { $set: { comment: "Pending" } } ); bulk.execute();