Consultas MongoDB con límite de documentos

01/Feb/2014 MongoDB , 1 Comentario

Cuando estamos realizando consultas en MongoDB podemos tener la necesidad de establecer un límite en el número de documentos a devolver. En este artículo vamos a ver como podemos realizar consultas MongoDB con límite de documentos.

Lo primero que repasaremos será la forma de realizar una consulta mediante el método .find()

  1. cursor = db.ciudades.find();
  2.  
  3. while (cursor.hasNext()) {
  4. printjson(cursor.next());
  5. }

El método .find() se lanza sobre la colección que queremos consultar. En el caso del ejemplo sobre la colección ciudades. Dentro del método .find podemos establecer los filtros que necesitemos para realizar la consulta.

Cuando el cursor recorra todos los datos de la colección devolverá todos aquellos que contemplen el filtro. Si no ponemos nada, nos devuelve todos.

Así, si tenemos la colección ciudades como:

{
	"_id" : ObjectId("525ab02733b01a66a9dcbc5b"),
	"ciudad" : "Madrid",
	"habitantes" : 3233527
}
{
	"_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
}

Nos devolverá todos esos documentos.

Para realizar consultas MongoDB con límite de documentos utilizaremos el método .limit(). El método .limit() tiene como parámetro el número de documentos a los que queremos limitar la respuesta. Es decir, que aunque haya más documentos que cumplen la condición, solo se devolverán tantos como indique el parámetro de .limit()

El código será el siguiente:

  1. cursor = db.ciudades.find().limit(2);
  2.  
  3. while (cursor.hasNext()) {
  4. printjson(cursor.next());
  5. }

En este caso el código limita a dos resultados como respuesta. Así, si partimos de la anterior colección, el resultado será el siguiente:

{
	"_id" : ObjectId("525ab02733b01a66a9dcbc5b"),
	"ciudad" : "Madrid",
	"habitantes" : 3233527
}
{
	"_id" : ObjectId("525ab02733b01a66a9dcbc5c"),
	"ciudad" : "Barcelona",
	"habitantes" : 1620943
}

Lógicamente el uso del método .limit() a la hora de realizar consultas MongoDB con límite de documentos permite una optimización en el tiempo de respuesta de las consultas. Ya que la base de datos MongoDB solo recorrerá los documentos a los que nos hemos limitado y no todos.

Vídeos sobre MongoDB


Difunde el Conocimiento

Si te ha gustado el artículo o te ha sido de utilidad, no dejes de compartirlo con tus amigos en las redes sociales... Te estaremos muy agradecidos. :-D