Menu Docs

Página inicial do DocsDesenvolver aplicaçõesManual do MongoDB

Bulk.find.updateOne()

Nesta página

  • Descrição
  • Comportamento
  • Exemplo

Dica

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étodo Bulk.find.updateOne() limita a atualização a um único documento. Para atualizar vários documentos, consulte Bulk.find.update().

Bulk.find.updateOne() aceita o seguinte parâmetro:

Parâmetro
Tipo
Descrição
atualizar
documento 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

Aggregation pipeline

Começando no MongoDB 4.2

Contém apenas os seguintes estágios de agregação:

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 do Bulk.find() e do documento de atualização deve ser menor ou igual ao tamanho máximo do documento BSON.

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.

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();

A partir da versão 4.2, 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();

Dica

Veja também:

← Bulk.find.replaceOne()