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.

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

Vídeos sobre MongoDB


¿Algo que nos quieras comentar?

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

*

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.