Inicio » MongoDB » Cómo añadir un elemento a array en Mongodb

Cómo añadir un elemento a array en Mongodb

Partiendo de la siguiente colección:

 db.escuela.find().pretty()
{
 "_id" : ObjectId("54f47e6ff4a4a5f82aef799a"),
 "curso" : "1 C",
 "Alumnos" : [
 {
 "Nombre" : "Amparo Ochoa",
 "Edad" : 10
 },
 {
 "Nombre" : "Lila Downs",
 "Edad" : 11
 }
 ]
}

Queremos añadir varios elementos al array, para ello utilizaremos el operador $addToSet, para añadir elementos que no existan previamente y el operador $each para poder añadir más de un elemento:

 

db.escuela.update({ "curso" : "1 C" },
                  { $addToSet: 
                  { "Alumnos" : 
                  { $each: 
           [{"Nombre" : "Eugenia Leon", "Edad" : 1 },
            {"Nombre" : "Paquita la del Barrio", "Edad" : 10},
           {"Nombre" : "Tania Libertad", "Edad" : 10},           { "Nombre" : "Lila Downs", "Edad" : 11}] }}});

Quedando la colección de esta manera, en el caso de Lila Downs vemos que no lo ha duplicado.

db.escuela.find().pretty()
{
 "Alumnos" : [
 {
 "Nombre" : "Amparo Ochoa",
 "Edad" : 10
 },
 {
 "Nombre" : "Lila Downs",
 "Edad" : 11
 },
 {
 "Nombre" : "Eugenia Leon",
 "Edad" : 1
 },
 {
 "Nombre" : "Paquita la del Barrio",
 "Edad" : 10
 },
 {
 "Nombre" : "Tania Libertad",
 "Edad" : 10
 }
 ],
 "_id" : ObjectId("54f47e6ff4a4a5f82aef799a"),
 "curso" : "1 C"
}

Y por último si queremos borrar elementos de un array:

db.escuela.update({ "curso" : "1 C" },
                  { $pullAll: 
                  {"Alumnos" : 
          [{"Nombre" : "Eugenia Leon", "Edad" : 1 }, 
           {"Nombre" : "Paquita la del Barrio", "Edad" : 10},
           {"Nombre" : "Tania Libertad", "Edad" : 10}
           ]
           }});

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s