Cursor forEach en MongoDB

08/Nov/2013 MongoDB , Deja un comentario

Ya hemos visto como recorrer un cursor en MongoDB. Si bien tenemos un cursor forEach en MongoDB que nos permite recorrer los documentos de una consulta de una forma sencilla y sin tener que realizar un bucle.

La sintaxis de un cursor forEach en MongoDB es la siguiente:

  1. db.coleccion.find(filtro).forEach(funcion)

El filtro corresponde con un documento JSON que filtre la consulta realizada por el método find. Luego, el método forEach recibe como parámetro una función que debe de tener como parámetro un documento. Es decir, cada vez que tengamos un documento a procesar de la consulta se ejecutará la función indicada dentro de forEach.

Pero lo primero que haremos en nuestro ejemplo será conectarnos a la base de datos MongoDB:

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

Luego definiremos la función que tratará cada uno de los documentos, recordemos que esta función debe tener como parámetro un documento.

  1. function cursor(doc) {
  2. print("En " + doc.ciudad + " hay " + doc.habitantes + " habitantes.");
  3. }

Vemos que accedemos a los campos del documento. En este caso utilizamos documentos de la colección ciudades, la cual tiene campos ciudad y habitantes.

{
	"_id" : ObjectId("525ab02733b01a66a9dcbc5c"),
	"ciudad" : "Barcelona",
	"habitantes" : 1620943
}
{
	"_id" : ObjectId("525ab02733b01a66a9dcbc5d"),
	"ciudad" : "Valencia",
	"habitantes" : 797028
}
{
	"_id" : ObjectId("525ab02733b01a66a9dcbc5e"),
	"ciudad" : "Sevilla",
	"habitantes" : 702355
}
{
	"_id" : ObjectId("525ab02733b01a66a9dcbc5f"),
	"ciudad" : "Zaragoza",
	"habitantes" : 679624
}

Ahora indicaremos la función en el parámetro forEach:

  1. db.ciudades.find().forEach(cursor);

Si queremos nos podemos evitar la definición de la función y definir la función anónima directamente sobre el método forEach. En este caso lo haremos de la siguiente forma:

  1. db.ciudades.find().forEach( function(doc) {
  2. print("En " + doc.ciudad + " hay " + doc.habitantes + " habitantes.");
  3. } );

Vídeos sobre MongoDB


¿Algo que nos quieras comentar?

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

*

*