Tip
MongoDB también proporciona la db.collection.bulkWrite() Método para realizar operaciones de escritura masiva.
Definición
db.collection.initializeOrderedBulkOp()Importante
Método mongosh
Esta página documenta una
mongoshMétodo. Esta no es la documentación de un controlador específico del 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 para una colección. El generador construye una lista ordenada de operaciones de escritura que MongoDB ejecuta en
Bulk()bloque.Devuelve: nuevo objeto generador de Bulk()operaciones.
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 el soporte de Atlas para todos los comandos, consulte Comandos no compatibles.
Comportamiento
Orden de operación
Con una lista de operaciones ordenadas, MongoDB ejecuta las operaciones de escritura en la lista en serie.
Ejecución de operaciones
Al ejecutar una ordered lista de operaciones, MongoDB las agrupa por operation type y 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 otra de inserción, MongoDB agrupa las operaciones en tres grupos separados: el primero contiene las dos operaciones de inserción, el segundo contiene la operación de actualización y el tercero contiene la última operación de inserción. Este comportamiento está sujeto a cambios en futuras versiones.
Bulk() Las operaciones en mongosh y los métodos comparables en los controladores no tienen límite en el número 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.
Ejecutar una lista de operaciones en una colección ordered unordered fragmentada generalmente será más lento que ejecutar una lista ya que con una lista ordenada, cada operación debe esperar a que finalice la operación anterior.
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 Bulk() generador users de operaciones en la colección, agrega una serie de operaciones de escritura 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();