Bulk.find.updateOne()
Nesta página
Dica
O MongoDB também fornece o método db.collection.bulkWrite()
para executar operações de gravação em massa.
Descrição
Bulk.find.updateOne(<update>)
Adds a single document update operation to a bulk operations list.
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:
A replacement document
Contains only field and value pairs.
Consulte também
Bulk.find.replaceOne()
.Atualizar documento
Contém somente atualizar expressões do operador.
Pipeline de agregação
Contém apenas os seguintes estágios de agregação:
$addFields
e seu apelido$set
$replaceRoot
e seu apelido$replaceWith
For more information on the update modification parameter, see the
db.collection.updateOne()
reference page.The sum of the associated
<query>
document from theBulk.find()
and the update document must be less than or equal to the maximum BSON document size.To specify an upsert: true for this operation, use with
Bulk.find.upsert()
.To specify
arrayFilters
to update specific array elements, use withBulk.find.arrayFilters()
.Para especificar o índice a utilizar para o
Bulk.find()
associado, consulteBulk.find.hint()
.To replace a document wholesale, see also
Bulk.find.replaceOne()
.
Compatibilidade
Esse comando está disponível em implantações hospedadas nos seguintes ambientes:
MongoDB Atlas: o serviço totalmente gerenciado para implantações do MongoDB na nuvem
Observação
Este comando é aceito em todos os clusters do MongoDB Atlas. Para obter informações sobre o suporte do Atlas a todos os comandos, consulte Comandos não suportados.
Comportamento
If the <update>
document contains only update operator expressions, as in:
{ $set: { status: "D" }, $inc: { points: 2 } }
Then, Bulk.find.updateOne()
updates only the corresponding
fields, status
and points
, in the document.
Exemplo
O exemplo a seguir inicializa um Bulk()
construtor de operações para a items
coleção e adiciona várias updateOne()
operações à lista de operações.
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:
o estágio
$set
, que pode fornecer um comportamento semelhante à expressão do operador de atualização$set
,the aggregation variable
NOW
, which resolves to the current datetime and can provide similar behavior to a$currentDate
update operator expression. To access aggregation variables, prefix the variable with double dollar signs$$
and enclose in quotes.
var bulk = db.items.initializeUnorderedBulkOp(); bulk.find( { status: "P" } ).updateOne( [ { $set: { points: 0, lastModified: "$$NOW" } } ] ); bulk.execute();
Veja também: