Tip
MongoDB también proporciona la Mongo.bulkWrite() Método para realizar operaciones de escritura masiva.
Descripción
Bulk.find.update(<update>)Agrega una operación de actualización
multia una lista de operaciones masivas. El método actualiza campos específicos en documentos existentes.Utilice el método para especificar la condición que determina qué documentos
Bulk.find()actualizar.Bulk.find.update()El método actualiza todos los documentos coincidentes. Para especificar una única actualización de documento,Bulk.find.updateOne()consulte.Bulk.find.update()acepta el siguiente parámetro:ParameterTipoDescripcióndocumento o pipeline
Las modificaciones que se deben aplicar puede ser una de las siguientes:
Update document
Contiene solo expresiones de operadores de actualización.
Aggregation Pipeline
Contiene únicamente las siguientes etapas de agregación:
$addFieldsy su alias$set$replaceRooty su alias$replaceWith
Para obtener más información sobre el parámetro de modificación de actualización, consulte la página de
db.collection.updateMany()referencia.La suma del
<query>documento asociado de y el documento de actualización debe ser menor o igual al tamañoBulk.find()máximo del documento BSON.Para especificar un upsert: true para esta operación,
Bulk.find.upsert()utilice. Con, si ningúnBulk.find.upsert()Bulk.find()documento cumple la condición de consulta, la operación de actualización inserta solo un documento.Para especificar
arrayFilterspara actualizar elementos específicos de un arreglo, utilícelo conBulk.find.arrayFilters().Para especificar el índice a utilizar para el
Bulk.find()asociado,Bulk.find.hint()consulte.Para reemplazar un documento al por mayor,
Bulk.find.replaceOne()consulte.
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.
Ejemplo
El siguiente ejemplo inicializa un generador de operaciones para Bulk() la items colección y agrega varias multi operaciones de actualización a la lista de operaciones.
var bulk = db.items.initializeUnorderedBulkOp(); bulk.find( { status: "D" } ).update( { $set: { status: "I", points: "0" } } ); bulk.find( { item: null } ).update( { $set: { item: "TBD" } } ); bulk.execute();
Actualiza con el pipeline de agregación
Los métodos de actualización pueden aceptar una canalización de agregación. Por ejemplo, los siguientes usos:
la etapa
$setque puede proporcionar un comportamiento similar a la expresión del operador de actualización$set,La variable de agregación
NOW, que se resuelve en la fecha y hora actual, puede tener un comportamiento similar al de una expresión de operador de actualización$currentDate. Para acceder a las variables de agregación, anteponga el signo de dólar doble$$a la variable y enciérrela entre comillas.
var bulk = db.items.initializeUnorderedBulkOp(); bulk.find( { status: "P" } ).update( [ { $set: { points: 0, lastModified: "$$NOW" } } ] ); bulk.execute();