Dica
O MongoDB também fornece o método Mongo.bulkWrite() para executar operações de gravação em massa.
Descrição
Bulk.find.updateOne(<update>)Adiciona uma única operação de atualização de documento a uma lista de operações em massa.
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()aceita o seguinte parâmetro:ParâmetroTipoDescriçãodocumento ou pipeline
As modificações a serem aplicadas. Podem ser uma dos seguintes:
Um documento de substituição:
Contém apenas pares de campos e valores.
Consulte também
Bulk.find.replaceOne().Update document:
Contém somente atualizar expressões do operador.
Pipeline de agregação:
Contém apenas os seguintes estágios de agregação:
$addFieldse seu alias$set$replaceRoote seu alias$replaceWith
Para obter mais informações sobre o parâmetro de modificação de atualização, consulte a página de referência
db.collection.updateOne().A soma do documento
<query>associado doBulk.find()e do documento de atualização deve ser menor ou igual ao tamanho máximo do documento BSON.Para especificar um upsert: true para esta operação, utilize com
Bulk.find.upsert().Para especificar
arrayFilterspara atualizar elementos de array específicos, utilize comBulk.find.arrayFilters().Para especificar o índice a utilizar para o
Bulk.find()associado, consulteBulk.find.hint().Para substituir um documento por atacado, consulte também
Bulk.find.replaceOne().
Compatibilidade
Esse comando está disponível em implantações hospedadas nos seguintes ambientes:
- MongoDB Atlas: The fully managed service for MongoDB deployments in the cloud
Observação
This command is supported in all MongoDB Atlas clusters. For information on Atlas support for all commands, see Unsupported Commands.
Comportamento
Se o documento <update> contiver apenas expressões de operador de atualização , como em:
{ $set: { status: "D" }, $inc: { points: 2 } }
Then, Bulk.find.updateOne() updates only the corresponding fields, status and points, in the document.
Exemplo
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();
Atualização com aggregation pipeline
Os métodos de atualização podem aceitar um pipeline de agregação. Por exemplo, os seguintes usos:
A variável de agregação
NOW, que produz a data/hora atual e pode fornecer comportamento semelhante a uma expressão de operador de atualização$currentDate. Para acessar variáveis de agregação, prefixe a variável com cifrões duplos$$e coloque entre aspas.
var bulk = db.items.initializeUnorderedBulkOp(); bulk.find( { status: "P" } ).updateOne( [ { $set: { points: 0, lastModified: "$$NOW" } } ] ); bulk.execute();