Menu Docs

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

$unset

Nesta página

  • Definição
  • Compatibilidade
  • Sintaxe
  • Comportamento
  • Exemplo

Observação

Desambiguação

A seguinte página refere-se ao operador de atualização $unset. Para o estágio de aggregation $unset, disponível a partir do MongoDB 4.2, consulte $unset.

$unset

O operador $unset exclui um campo específico.

Você pode utilizar o $unset para implantações hospedadas nos seguintes ambientes:

  • MongoDB Atlas: o serviço totalmente gerenciado para implantações MongoDB na nuvem

Considere a seguinte sintaxe:

{ $unset: { <field1>: "", ... } }

O valor especificado na expressão $unset (ou seja, "") não afeta a operação.

Para especificar um <field> em um documento incorporado ou em uma array, use a notação de ponto.

A partir do MongoDB 5.0, os operadores de atualização processam 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. Consulte Atualizar Comportamento de Operadores para detalhes.

Se o campo não existir, então $unset não faz nada (ou seja, nenhuma operação).

Quando usado com $ para corresponder a um elemento de array, $unset substitui o elemento correspondente por null em vez de remover o elemento correspondente da array. Esse comportamento mantém consistente o tamanho da array e as posições dos elementos.

A partir do MongoDB 5.0, mongod não gera mais um erro quando você usa um operador de atualização como $unset com uma expressão de operando vazia ( { } ). Uma atualização vazia não resulta em nenhuma alteração e nenhuma entrada no oplog é criada (o que significa que a operação é um no-op).

Crie a coleção products:

db.products.insertMany( [
{ "item": "chisel", "sku": "C001", "quantity": 4, "instock": true },
{ "item": "hammer", "sku": "unknown", "quantity": 3, "instock": true },
{ "item": "nails", "sku": "unknown", "quantity": 100, "instock": true }
] )

Atualize o primeiro documento na collection products onde o valor de sku é unknown:

db.products.updateOne(
{ sku: "unknown" },
{ $unset: { quantity: "", instock: "" } }
)

updateOne() utiliza o operador $unset para:

  • remover o campo quantity

  • remover o campo instock

{
item: 'chisel',
sku: 'C001',
quantity: 4,
instock: true
},
{
item: 'hammer',
sku: 'unknown'
},
{
item: 'nails',
sku: 'unknown',
quantity: 100,
instock: true
}

Dica

← $setOnInsert