Una de las cosas potentes que tiene MongoDB es la capacidad de crear documentos que tengan campos que sean arrays. Cosas que nos permiten representar valores anexos a un documento de una forma sencilla y que sería complejo (o tedioso) en una base de datos relacional. En este caso vamos a ver cómo podemos añadir un valor a un array en MongoDB.
Partimos de un documento que no tiene ningún campo que sea un array. Dicho documento representa información sobre una ciudad.
{
"_id": ObjectId("525ab02733b01a66a9dcbc5f"),
"ciudad": "Zaragoza",
"habitantes": 679624
}
Ahora vamos a crear un array en el que insertemos información de monumentos que se puedan visitar en dicha ciudad.
El primer paso será conectarnos a la base de datos cuyo nombre es «demografía».
conn = new Mongo();
db = conn.getDB("demografia");
Ahora vamos a ayudarnos en el operador $push
. La estructura del operador $push
es la siguiente.
{$push:{campo:elemento_insertar}}
Si el campo no existe se crea un campo de formato array, en el caso de que campo exista y no sea un array se generaría un error.
De esta forma utilizaremos el método .update
para poder añadir un valor a un array en MongoDB.
update = db.ciudades.update({ciudad:"Zaragoza"},{$push:{monumentos:"Basílica del Pilar"}})
Podremos comprobar si se ha actualizado el documento revisando el campo «nMatched» devuelto en la respuesta.
print('Documentos actualizados ' + update["nMatched"]);
Una vez ejecutado tendremos el siguiente documento.
{
"_id" : ObjectId("525ab02733b01a66a9dcbc5f"),
"ciudad" : "Zaragoza",
"habitantes" : 679624,
"monumentos" : [
"Basílica del Pilar"
]
}
De esta manera ya hemos conseguido añadir un valor a un array en MongoDB.