Consultas NoSQL - Entrega 6
En esta sección se presentan seis (6) ejemplos de consultas realizados sobre la base de datos "Bodytech" empleando las funciones de agregación disponibles en MongoDB.

Promedio de asistencias por categoría.
La selección tiene como objetivo determinar el promedio de asistencias que tienen las sedes asociadas a cada una de las categorías. A continuación, se describen cada una de las etapas realizadas, mientras que la imagen muestra el resultado de la operación
- $match para filtrar los clientes de los que se tiene información de asistencia.
- $lookup para hacer la conexión entre las colecciones de clientes y categorías.
- $unwind para abrir los arreglos creados por lookup.
- $group para hacer el promedio de asistencia por categoría.

Promedio de edad por categoría.
La selección tiene como objetivo determinar la edad promedio de los clientes que atienden a las diferentes sedes de acuerdo con la categoría a la que pertenece el gimnasio. A continuación, se describen cada una de las etapas realizadas, mientras que la imagen muestra el resultado de la operación
- $match para filtrar los clientes de los que se tiene información de asistencia.
- $lookup para hacer la conexión entre las colecciones de clientes y categorías.
- $unwind para abrir los arreglos creados por lookup.
- $group para hacer el promedio de edad por categoría.

Especialidad con más clientes.
La selección tiene como objetivo identificar cual es la especialidad que más atenciones ha ofrecido a sus clientes. A continuación, se describen cada una de las etapas realizadas, mientras que la imagen muestra el resultado de la operación
- $match para filtrar los profesionales que tienen información de clientes atendidos.
- $lookup para hacer la conexión entre las colecciones de profesionales y clientes.
- $unwind para abrir los arreglos creados por lookup.
- $group para hacer la suma de horas de atención por cada especialidad.
- $sort para organizar los resultados.
- $limit para mostrar únicamente la especialidad con más clientes.

Ingresos totales de las categorías.
El objetivo de la agregación es determinar cuales son los ingresos totales que registran las sedes de cada una de las categorías de los gimnasios de Bodytech. A continuación, se describen cada una de las etapas realizadas, mientras que la imagen muestra el resultado de la operación
- $match para filtrar los clientes de los que se tiene información de asistencia.
- $lookup para hacer la conexión entre las colecciones de clientes y categorías.
- $unwind para abrir los arreglos creados por lookup.
- $group para hacer la suma de ingresos.

Cliente que más ha gastado.
El objetivo de la selección es determinar cuál es el cliente que más ha gastado en membresía y clases entre todas las categorías y sedes. A continuación, se describen cada una de las etapas realizadas, mientras que la imagen muestra el resultado de la operación
- $addFields para agregar un campo con el total gastado por cada cliente. Si es un único pago o el acumulado de varias horas de atención.
- $sort para organizar los resultados.
- $limit para restringir la selección al cliente que más ha gastado.

Sede con mayor cantidad de clientes.
La selección tiene como objetivo determinar en la base de datos, cuantos clientes hay registrados por categoría del gimnasio. A continuación, se describen cada una de las etapas realizadas, mientras que la imagen muestra el resultado de la operación.
- $match para filtrar los clientes que tienen información de categoría.
- $lookup para hacer la conexión entre las colecciones de clientes y categoría.
- $unwind para abrir los arreglos creados por lookup.
- $lookup para hacer la conexión entre las colecciones de categoría y sede.
- $unwind para abrir los arreglos creados por lookup.
- $group para hacer la suma clientes por sede.
- $sort para organizar los resultados.
- $limit para mostrar únicamente la sede con más clientes.
