Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Bulk() (método mongosh)

Tip

MongoDB también provee la db.collection.bulkWrite() método para realizar operaciones de escritura masiva.

Bulk()

Generador de operaciones masivas utilizado para crear una lista de operaciones de escritura que se ejecutan masivamente en una sola colección. Para instanciar el generador, utilice db.collection.initializeOrderedBulkOp() el método db.collection.initializeUnorderedBulkOp() o.

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.

El constructor puede construir la lista de operaciones como ordenadas o desordenadas.

Con una lista de operaciones ordenadas, MongoDB ejecuta las operaciones de guardar de la lista de forma secuencial. Si se produce un error durante el procesamiento de una de las operaciones de guardar, MongoDB devolverá sin procesar las demás operaciones de guardar restantes en la lista.

Utiliza db.collection.initializeOrderedBulkOp() para crear un constructor para una lista ordenada de comandos de escritura.

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.

La ejecución de una ordered lista de operaciones en una colección particionada generalmente será más lenta que la ejecución de una lista unordered, ya que con una lista ordenada, cada operación debe esperar a que la anterior termine.

Con una lista de operaciones no ordenadas, MongoDB puede ejecutar en paralelo, así como en un orden no determinista, las operaciones de escritura de la lista. 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.

Utiliza db.collection.initializeUnorderedBulkOp() para crear un generador para una lista no ordenada de comandos de guardar.

Al ejecutar una unordered lista de operaciones, MongoDB agrupa las operaciones. Con una operación masiva no ordenada, las operaciones en la lista pueden reordenarse para mejorar el rendimiento. Como tal, las aplicaciones no deben depender del orden al realizar unordered operaciones masivas.

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.

Bulk() puede usarse dentro de transacciones distribuidas.

Para operaciones de Bulk.insert(), la colección debe existir previamente.

Para Bulk.find.upsert(), si la operación resulta en una inserción o actualización, la colección debe existir previamente.

No establezcas explícitamente el nivel de confirmación de escritura para la operación si se ejecuta en una transacción. Para usar el nivel de confirmación de escritura con transacciones, consulta Transacciones y nivel de confirmación de escritura.

Importante

En la mayoría de los casos, una transacción distribuida incurre en un costo de rendimiento mayor que las escrituras de documentos individuales, y la disponibilidad de transacciones distribuidas no debería ser un sustituto para un diseño de esquema efectivo. Para muchos casos, el modelo de datos desnormalizado (documento incrustado y matrices) seguirá siendo óptimo para tus datos y casos de uso. Es decir, en muchos casos, modelar tus datos de forma adecuada minimizará la necesidad de transacciones distribuidas.

Para consideraciones adicionales sobre el uso de transacciones (como el límite de tiempo de ejecución y el límite de tamaño del oplog), consulta también las consideraciones de producción.

El generador Bulk() tiene los siguientes métodos:

Nombre
Descripción

Añade una operación de inserción a una lista de operaciones.

Especifica la condición del query para una operación de actualización o eliminación.

Añade una operación de borrado de múltiples documentos a una lista de operaciones.

Añade una operación de borrado de un solo documento a una lista de operaciones.

Un alias para Bulk.find.delete().

Un alias para Bulk.find.deleteOne().

Añade una única operación de reemplazo de documento a una lista de operaciones.

Añade una única operación para actualizar un documento a una lista de operaciones.

Añade una operación de actualización de multi a una lista de operaciones.

Especifica upsert: true para una operación de actualización.

Ejecuta una lista de operaciones masivas.

Devuelve un arreglo de operaciones de guardado ejecutadas en el objeto de operaciones Bulk().

Devuelve un documento JSON que contiene el número de operaciones y agrupaciones en el objeto de operaciones Bulk().

Devuelve los resultados Bulk.toJSON() como un string.

Volver

Mongo.bulkWrite

En esta página