Os seguintes operadores estão disponíveis para uso em operações de atualização, como db.collection.updateMany() e db.collection.findAndModify().
Sintaxe
Especifique os operadores de atualização no seguinte formato:
{ <operator1>: { <field1>: <value1>, ... }, <operator2>: { <field2>: <value2>, ... }, ... }
Comportamento
Atualize os operadores para processar campos de documento com nomes baseados em cadeia de caracteres em ordem lexicográfica. Os campos com nomes numéricos são processados em ordem numérica.
Considere este exemplo de comando $set:
{ $set: { "a.2": <new value>, "a.10": <new value>, } }
"a.2" é processado antes de "a.10" porque 2 vem antes de 10 em ordem numérica.
Array Update Modifiers
Os seguintes modificadores alteram como os operadores $push e $addToSet atualizam arrays:
Operadores de atualização de array
Os seguintes operadores modificam o conteúdo de uma array:
Nome | Descrição |
|---|---|
Adiciona elementos a uma array somente se eles ainda não existirem no conjunto. | |
Remove o primeiro ou último item de uma array. | |
Remove todos os elementos de array que correspondem a uma query especificada. | |
Remove todos os valores correspondentes de uma array. | |
Adiciona um item a uma array. |
Operadores de atualização bitwise
O seguinte operador executa uma atualização bitwise de um valor inteiro:
Nome | Descrição |
|---|---|
Executa atualizações bitwise |
Operadores de atualização de campo
Os seguintes operadores modificam campos em um documento:
Nome | Descrição |
|---|---|
Define o valor de um campo para a data atual, como data ou carimbo de data/hora. | |
Aumenta o valor do campo no valor especificado. | |
Somente atualiza o campo se o valor especificado for menor que o valor de campo existente. | |
Somente atualiza o campo se o valor especificado for maior que o valor de campo existente. | |
Multiplica o valor do campo pelo valor especificado. | |
Renomeia um campo. | |
Define o valor de um campo em um documento. | |
Define o valor de um campo se uma atualização resultar em uma inserção de um documento. Não tem efeito sobre as operações de atualização que modificam os documentos existentes. | |
Remove o campo especificado de um documento. |
Operadores de atualização posicional
Os seguintes operadores atuam como espaços reservados para identificar quais elementos de array devem ser atualizados:
Nome | Descrição |
|---|---|
Atua como um espaço reservado para atualizar o primeiro elemento que corresponde à condição de query. | |
Atua como um espaço reservado para atualizar todos os elementos em uma array para os documentos que correspondem à condição de query. | |
Atua como um espaço reservado para atualizar todos os elementos que correspondem à condição |
Atualizações com pipeline de agregação
Para criar instruções de atualização expressivas, como atualizações condicionais com base em valores de campo atuais ou atualizações de campo único que usam o valor de outro campo, você pode executar atualizações com uma agregação pipeline.
Para sintaxe e exemplos, consulte Atualizações com Aggregation Pipeline.