Añadir un valor a un array en MongoDB

19/Ene/2016 MongoDB , Deja un comentario

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.

  1. {
  2. "_id": ObjectId("525ab02733b01a66a9dcbc5f"),
  3. "ciudad": "Zaragoza",
  4. "habitantes": 679624
  5. }

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".

  1. conn = new Mongo();
  2. db = conn.getDB("demografia");

Ahora vamos a ayudarnos en el operador $push. La estructura del operador $push es la siguiente.

  1. {$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.

  1. 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.

  1. print('Documentos actualizados ' + update["nMatched"]);

Una vez ejecutado tendremos el siguiente documento.

  1. {
  2. "_id" : ObjectId("525ab02733b01a66a9dcbc5f"),
  3. "ciudad" : "Zaragoza",
  4. "habitantes" : 679624,
  5. "monumentos" : [
  6. "Basílica del Pilar"
  7. ]
  8. }

De esta manera ya hemos conseguido añadir un valor a un array en MongoDB.

Vídeos sobre MongoDB


¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

*