$unset (agregação)
Nesta página
Definição
Observação
Desambiguação
Sintaxe
O estágio $unset
tem a seguinte sintaxe:
Considerações
$unset
e a $project
$unset
é um apelido do estágio $project
que remove/exclui campos:
{ $project: { "<field1>": 0, "<field2>": 0, ... } }
Campos incorporados
Para remover/excluir um campo ou campos em um documento incorporado, você pode usar a notação de ponto, como em:
{ $unset: "<field.nestedfield>" }
ou
{ $unset: [ "<field1.nestedfield>", ...] }
Exemplos
Criar uma coleção books
de amostra com os seguintes documentos:
db.books.insertMany([ { "_id" : 1, title: "Antelope Antics", isbn: "0001122223334", author: { last:"An", first: "Auntie" }, copies: [ { warehouse: "A", qty: 5 }, { warehouse: "B", qty: 15 } ] }, { "_id" : 2, title: "Bees Babble", isbn: "999999999333", author: { last:"Bumble", first: "Bee" }, copies: [ { warehouse: "A", qty: 2 }, { warehouse: "B", qty: 5 } ] } ])
Remover um único campo
O exemplo a seguir remove o campo de nível superior copies
:
db.books.aggregate([ { $unset: "copies" } ])
Alternativamente, você também pode usar a seguinte sintaxe:
db.books.aggregate([ { $unset: [ "copies" ] } ])
Qualquer operação retorna os seguintes documentos:
{ "_id" : 1, "title" : "Antelope Antics", "isbn" : "0001122223334", "author" : { "last" : "An", "first" : "Auntie" } } { "_id" : 2, "title" : "Bees Babble", "isbn" : "999999999333", "author" : { "last" : "Bumble", "first" : "Bee" } }
Remover campos de nível superior
O exemplo a seguir remove os campos de nível superior isbn
e copies
:
db.books.aggregate([ { $unset: [ "isbn", "copies" ] } ])
A operação $unset
gera os seguintes documentos:
{ "_id" : 1, "title" : "Antelope Antics", "author" : { "last" : "An", "first" : "Auntie" } } { "_id" : 2, "title" : "Bees Babble", "author" : { "last" : "Bumble", "first" : "Bee" } }
Remover campos incorporados
O exemplo a seguir remove o campo de nível superior isbn
, o campo incorporado first
(do documento name
) e o campo incorporado warehouse
(dos elementos na array copies
):
db.books.aggregate([ { $unset: [ "isbn", "author.first", "copies.warehouse" ] } ])
A operação $unset
gera os seguintes documentos:
{ "_id" : 1, "title" : "Antelope Antics", "author" : { "last" : "An" }, "copies" : [ { "qty" : 5 }, { "qty" : 15 } ] } { "_id" : 2, "title" : "Bees Babble", "author" : { "last" : "Bumble" }, "copies" : [ { "qty" : 2 }, { "qty" : 5 } ] }