Tip
MongoDB también proporciona el método db.collection.bulkWrite() para realizar operaciones de guardar masiva.
Definición
db.collection.initializeUnorderedBulkOp()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 constructor de operaciones
Bulk()para una colección. El constructor crea una lista no ordenada de operaciones de escritura que MongoDB ejecuta por lotes.
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 desordenada, MongoDB puede ejecutar en paralelo las operaciones de guardar y en cualquier orden. Si el orden de las operaciones es importante, utiliza db.collection.initializeOrderedBulkOp() en su lugar.
Ejecución de operaciones
Al ejecutar una lista de operaciones, MongoDB las agrupa. Con una operación masiva no ordenada, las operaciones de la lista unordered unordered pueden reordenarse para mejorar el rendimiento. Por lo tanto, las aplicaciones no deben depender del orden al realizar operaciones masivas.
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.
Error Handling
Si se produce un error durante el procesamiento de una de las operaciones de guardado, MongoDB continuará procesando las operaciones de guardado restantes en la lista.
Ejemplo
Lo siguiente inicializa un generador de operaciones Bulk() y agrega una serie de operaciones de inserción para añadir varios documentos:
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();