Title: Ejercicio Practico MongoDB #05 (Pt1)
Course: 2025 - LI - Bases de Datos Emergentes 2-1 y 2-2

Formas de leer registros desde MongoDB

```

private final String URI = "mongodb://localhost:27017";

/* crear/abrir base de datos */
MongoDatabase database = mongoClient.getDatabase("nombre_base_datos");

/* crear/abrir coleccion */
MongoCollection<Document> collection = database.getCollection("nombre_coleccion");

/* crear iterador para la coleccion */
MongoCursor<Document> cursor = collection.find().iterator();

/* Version 01 */
public static void leer(){
    /* crear conexion a mongodb */
    try (MongoClient mongoClient = MongoClients.create(URI)) {
        while (cursor.hasNext()) {
            System.out.println(cursor.next().toJson());
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

/* Version 02 */
public static void leer(){
    /* crear conexion a mongodb */
    try (MongoClient mongoClient = MongoClients.create(URI)) {
        for(int i = 0; i < collection.countDocuments(); i++){
            numRegistro = i +1; /* variable para ennumerar los registros desde 1 */
            /* bloque para extraer cada documento de la coleccion
            las propiedades/atributos/campos pueden variar */
            Document doc = cursor.next();
            String nombre = doc.getString("nombre");
            String apellido = doc.getString("apellido");
            String correo = doc.getString("correo");
            String turno = doc.getString("turno");
            String grupo = doc.getString("grupo");
            /* suponiendo que tiene una lista (estructura de datos) y un objeto Alumno, se modela cada dato extraido
            de cada documento y se agrega a la lista */
            listaAlumnos.add(new Alumno(numRegistro, nombre, apellido, correo, turno, grupo ));
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    finally {
       /* cerrar la conexion */
       cursor.close();
    }
}

```