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.
Documento de partida
Sección titulada «Documento de partida»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”.
Operadores $push y $each
Sección titulada «Operadores $push y $each»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]}}}Actualizar el documento
Sección titulada «Actualizar el documento»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"] } }})Resultado final
Sección titulada «Resultado final»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.
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.