Ir al contenido

Añadir N elementos a un array en MongoDB

Si ya has leído nuestro ejemplo sobre cómo añadir un valor a un array en MongoDB y lo has probado, habrás visto que tendríamos que insertar de elemento en elemento, ejecutando cada vez la operación update.

En este ejemplo vamos a ver cómo podemos añadir N elementos a un array en MongoDB.

Volvemos a partir de nuestro documento que representa una ciudad:

{
"_id" : ObjectId("525ab02733b01a66a9dcbc5f"),
"ciudad" : "Zaragoza",
"habitantes" : 679624,
"monumentos" : [
"Basílica del Pilar"
]
}

Lo que buscamos es añadir N elementos a un array en MongoDB pero de una sola vez. En este caso vamos a añadir más monumentos a la ciudad de “Zaragoza”.

Para hacer la inserción sobre el array seguiremos utilizando el operador $push:

{$push:{campo:elemento}}

Pero vamos a necesitar de otro operador, en este caso de $each para poder especificar una lista de elementos.

De esta forma la estructura de inserción se quedará de la siguiente forma:

{$push:{campo:{$each:[elemento1,elemento2,...,elementoN]}}}

La actualización del documento la realizamos con el método update y nos quedará de la siguiente forma:

db.ciudades.update(
{ciudad:"Zaragoza"},
{$push:{monumentos:
{$each:["SEO",
"Palacio Aljafería",
"Murallas Romanas"]
}
}
})

Y al ejecutarlo el documento resultante será:

{
"_id" : ObjectId("525ab02733b01a66a9dcbc5f"),
"ciudad" : "Zaragoza",
"habitantes" : 679624,
"monumentos" : [
"Basílica del Pilar",
"SEO",
"Palacio Aljafería",
"Murallas Romanas"
]
}

Vemos que lo que hace es añadir los elementos dentro del array conservando el elemento existente. Así ya hemos visto como manejar los operadores $push y $each para poder añadir N elementos a un array en MongoDB.

Foto de Víctor Cuervo

Víctor Cuervo

Programador, Arquitecto IT, álter ego de Línea de Código, amante de las tecnologías, generador de conocimiento y facilitador del aprendizaje.

Descarga el código de Añadir N elementos a un array en MongoDB

Aprende a añadir N elementos a un array en MongoDB de manera eficiente utilizando los operadores $push y $each para optimizar tus actualizaciones.

Descargar código