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
Esta página documenta un método.
mongoshEsta no es la documentación de un controlador específico de un lenguaje, como 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
Este comando es compatible con todos los clústeres de MongoDB Atlas. Para obtener información sobre la compatibilidad de Atlas con todos los comandos, consulte Comandos no compatibles.
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() Las operaciones en mongosh y los métodos comparables en los controladores no tienen límite en la cantidad de operaciones por grupo. Para ver cómo se agrupan las operaciones para la ejecución Bulk.getOperations() masiva, llame a después de la ejecución.
Generalmente, ejecutar una lista de operaciones en una colección ordered unordered fragmentada será más lento que ejecutar una lista ya que con una lista ordenada, cada operación debe esperar a que la operación anterior termine.
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();