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>)
Adiciona uma única operação de atualização de documento a uma lista de operações em massa.
Use o método
Bulk.find()
para especificar a condição que determina qual documento atualizar. O métodoBulk.find.updateOne()
limita a atualização a um único documento. Para atualizar vários documentos, consulteBulk.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()
.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 alias$set
$replaceRoot
e seu nome alternativo$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
arrayFilters
para 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: 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
Se o documento <update>
contiver apenas expressões de operador de atualização , como em:
{ $set: { status: "D" }, $inc: { points: 2 } }
Em seguida, Bulk.find.updateOne()
atualiza apenas os campos correspondentes, status
e points
, no documento.
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
,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();