Tip
MongoDB también proporciona el método db.collection.bulkWrite() para realizar operaciones de guardar masiva.
Descripción
Bulk.find.updateOne(<update>)Agrega una sola operación de actualización de documento a una lista de operaciones masivas.
Use the
Bulk.find()method to specify the condition that determines which document to update. TheBulk.find.updateOne()method limits the update to a single document. To update multiple documents, seeBulk.find.update().Bulk.find.updateOne()acepta el siguiente parámetro:ParameterTipoDescripcióndocumento o pipeline
Las modificaciones que se deben aplicar puede ser una de las siguientes:
Un documento de sustitución
Contiene únicamente pares de campo y valor.
Consulte también
Bulk.find.replaceOne().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 actualizar, consulta la página de referencia
db.collection.updateOne().La suma del documento
<query>asociado delBulk.find()y el documento actualizado debe ser inferior o igual al tamaño máximo de documento BSON.Para especificar una inserción: true para esta operación, usa con
Bulk.find.upsert().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, veaBulk.find.hint().Para reemplazar un documento en su totalidad, consulta también
Bulk.find.replaceOne().
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
This command is supported in all MongoDB Atlas clusters. For information on Atlas support for all commands, see Unsupported Commands.
Comportamiento
Si el <update> documento contiene solo expresiones de operadores de actualizar, como en:
{ $set: { status: "D" }, $inc: { points: 2 } }
Then, Bulk.find.updateOne() updates only the corresponding fields, status and points, in the document.
Ejemplo
The following example initializes a Bulk() operations builder for the items collection, and adds various updateOne() operations to the list of operations.
var bulk = db.items.initializeUnorderedBulkOp(); bulk.find( { status: "D" } ).updateOne( { $set: { status: "I", points: "0" } } ); bulk.execute();
Actualiza con el pipeline de agregación
Los métodos de actualización pueden aceptar una pipeline de agregación. Por ejemplo, los siguientes usos:
la variable de agregación
NOW, que se resuelve en la fecha y hora actual y puede ofrecer un comportamiento similar a una$currentDateexpresión del operador de actualización. Para acceder a las variables de agregación, antepón double dollar signs$$a la variable y enciérrala entre comillas.
var bulk = db.items.initializeUnorderedBulkOp(); bulk.find( { status: "P" } ).updateOne( [ { $set: { points: 0, lastModified: "$$NOW" } } ] ); bulk.execute();