Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

Bulk() (método mongosh)

Tip

MongoDB también proporciona el método Mongo.bulkWrite() para realizar operaciones de guardar masiva.

Bulk()

Constructor de operaciones en lote utilizado para crear una lista de operaciones de escritura a ejecutar en lote para una sola colección. Para instanciar el constructor, use el método db.collection.initializeOrderedBulkOp() o el método db.collection.initializeUnorderedBulkOp().

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.

El desarrollador puede crear la lista de operaciones como ordenada o desordenada.

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 agrupa las operaciones por la operation type y la contigüidad; es decir, las operaciones contiguas del mismo tipo se agrupan juntas. Por ejemplo, si una lista ordenada contiene dos operaciones de inserción seguidas de una operación de actualización y, a continuación, otra operación de inserción, MongoDB agrupa las operaciones en tres grupos distintos: 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 está sujeto a cambios en versiones futuras.

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.

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 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.

Bulk() se puede utilizar 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 constructor tiene los siguientes Bulk() 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 una matriz de operaciones de escritura ejecutadas en el Bulk() objeto de operaciones.

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

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