Docs Menu
Docs Home
/ /

$unset (etapa de agregación)

Nota

Desambiguación

La siguiente página se refiere a la etapa de agregación. $unset. Para el operador de actualización $unset,$unset véase.

$unset

Remueve/excluye campos de los documentos.

La etapa $unset tiene la siguiente sintaxis:

  • Para remover un solo campo, el $unset toma un string que especifica el campo a remover:

    { $unset: "<field>" }
  • Para remover varios campos, el $unset toma un arreglo de campos para remover.

    { $unset: [ "<field1>", "<field2>", ... ] }

El $unset es un alias para la etapa $project para remover/excluir campos:

{ $project: { "<field1>": 0, "<field2>": 0, ... } }

Para remover/excluir un campo o campos dentro de un documento incrustado, puedes utilizar la notación de puntos, como en:

{ $unset: "<field.nestedfield>" }

or

{ $unset: [ "<field1.nestedfield>", ...] }

Crea una colección de ejemplo books con los siguientes 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 } ] }
])

El siguiente ejemplo remueve el campo de nivel superior copies:

db.books.aggregate([ { $unset: "copies" } ])

Alternativamente, también puedes usar la siguiente sintaxis:

db.books.aggregate([ { $unset: [ "copies" ] } ])

Cualquiera de las dos operaciones devuelve los siguientes 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" } }

El siguiente ejemplo elimina los campos de nivel superior isbn y copies:

db.books.aggregate([
{ $unset: [ "isbn", "copies" ] }
])

La operación $unset produce los siguientes documentos:

{ "_id" : 1, "title" : "Antelope Antics", "author" : { "last" : "An", "first" : "Auntie" } }
{ "_id" : 2, "title" : "Bees Babble", "author" : { "last" : "Bumble", "first" : "Bee" } }

El siguiente ejemplo elimina el campo de nivel superior isbn, el campo incrustado first (del documento name) y el campo incrustado warehouse (de los elementos en el arreglo copies):

db.books.aggregate([
{ $unset: [ "isbn", "author.first", "copies.warehouse" ] }
])

La operación $unset produce los siguientes 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 } ] }

Los ejemplos de Node.js en esta página utilizan la base de datos sample_mflix de los conjuntos de datos de muestra de Atlas. Para aprender a crear un clúster gratuito de MongoDB Atlas y cargar los conjuntos de datos de muestra, consulte Primeros pasos en la documentación del controlador de MongoDB Node.js.

Para utilizar el controlador de MongoDB Node.js para agregar una etapa de $unset a una canalización de agregación, utilice el Operador $unset en un objeto de canalización.

El siguiente ejemplo crea una etapa de pipeline que excluye el campo tomatoes y el campo incrustado imdb.votes de los documentos de retorno. A continuación, el ejemplo ejecuta el pipeline de agregación:

const pipeline = [{ $unset: ["imdb.votes", "tomatoes"] }];
const cursor = collection.aggregate(pipeline);
return cursor;

Volver

$unionWith

En esta página