Recorrer un cursor en MongoDB
Cuando realizamos consultas sobre una colección en MongoDB lo que obtenemos como resultado es un cursor de documentos. Si queremos ver los documentos que contiene un cursor en MongoDB deberemos de recorrerlo. Un cursor lo obtendremos cuando realizamos una consulta mediante MongoDB find.
Obtener el cursor
Sección titulada «Obtener el cursor»Por ejemplo al realizar la siguiente consulta:
conn = new Mongo();db = conn.getDB("demografia");
cursor = db.ciudades.find();La variable cursor será la que contenga el listado de documento.
Métodos del cursor
Sección titulada «Métodos del cursor»Ahora para recorrer un cursor en MongoDB deberemos de conocer una serie de métodos del cursor. El primer método es .hasNext() es un método que nos permite saber si quedan documentos por recorrer en el cursor, otro método es .next() el cual va moviendo el cursor y nos permite iterar por el cursor de documentos.
Lo que crearemos será un bucle que nos ayude a recorrer un cursos en MongoDB de la siguiente forma:
while (cursor.hasNext()) { printjson(cursor.next());}El método printjson nos vuelva el contenido JSON del documento. Si bien tenemos que saber que cada vez que ejecutemos el método .next() vamos a obtener un documento.
documento = cursor.next();Acceder a los campos del documento
Sección titulada «Acceder a los campos del documento»Y al tener un documento podemos acceder a los campos del documento mediante una notación de punto. De esta forma si queremos acceder al campo ciudad lo haremos de la siguiente forma:
print (documento.ciudad);Siguiendo estas pautas podemos construir un bucle que recorra un cursor en MongoDB y muestre el contenido de la consulta de la siguiente forma:
while (cursor.hasNext()) { doc = cursor.next();
// Imprimir un documento printjson(doc);
// Imprimir campos de un documento print("En " + doc.ciudad + " hay " + doc.habitantes + " habitantes.");}Descarga el código de Recorrer un cursor en MongoDB
Aprende a recorrer un cursor en MongoDB y extraer información valiosa de tus documentos de manera eficiente para optimizar tus consultas y resultados.