BALFRE VAZQUEZ CASTREJON
Seria excelente ver el curso de aggregation framework
Jerald Jeanphierre Espinoza Flores
X2
takeshi hp
x3
¿Qué es el Aggregation Framework en MongoDB?
El Aggregation Framework de MongoDB es una poderosa herramienta diseñada para realizar análisis de datos profundos. Va más allá de lo que permite el Mongo Query Language, ofreciendo un sistema de procesamiento y análisis de grandes volúmenes de datos. A menudo se compara con un conjunto de pipelines o tuberías, donde la salida de datos de una tubería se convierte en la entrada de la siguiente, permitiendo así procesar información de manera continua y efectiva.
Con MongoDB, te adentras en un enfoque más avanzado que conecta, organiza y genera insights significativos de los datos. Es esencial para el análisis a gran escala y es particularmente útil en data science. En situaciones que requieren manejo de gran cantidad de datos, como grandes bases de datos de Airbnb, el Aggregation Framework se convierte en una herramienta crucial.
¿Cómo se utiliza el Aggregation Framework?
El Aggregation Framework se utiliza a través de un comando llamado aggregate, que permite ejecutar múltiples etapas o procesos denominados pipelines. Cada pipeline realiza una operación específica sobre los datos de entrada. A continuación, se detalla el uso básico:
Ejemplo de conexión a la base de datos
Para comenzar a utilizar el Aggregation Framework, primero se conecta a una base de datos. En este caso, se trabajará con la base de datos de Airbnb, específicamente con la colección listingandreviews, que contiene documentos sobre reviews y listados de lugares.
db.listingandreviews.find()
Ejemplo de búsqueda simple
A modo de ejemplo, supongamos que queremos saber el precio y los amenities de ciertos alojamientos de Airbnb, específicamente aquellos que ofrecen Wi-Fi:
db.listingandreviews.aggregate([ { $match: { amenities: "Wifi" } }, { $project: { price: 1, amenities: 1 } } ])
El comando $match se utiliza para filtrar documentos por un criterio específico. Aquí, se está buscando lugares que tengan Wi-Fi. Luego, $project selecciona únicamente los campos price y amenities de los documentos filtrados.
Agrupación y conteo
Una de las capacidades más poderosas del Aggregation Framework es la habilidad para agrupar datos y realizar cálculos a nivel de grupo. Siguiendo con el ejemplo, podríamos querer contar las habitaciones con Wi-Fi disponibles por país:
db.listingandreviews.aggregate([ { $match: { amenities: "Wifi" } }, { $project: { address: 1 } }, { $group: { _id: "$address.country", count: { $sum: 1 } } } ])
Aquí, los documentos son agrupados por el campo address.country y se utiliza $sum para contar cuántos documentos pertenecen a cada grupo.
¿Dónde se aplica el Aggregation Framework?
El Aggregation Framework es ampliamente utilizado en situaciones que requieren procesamiento complejo de datos, tales como:
MongoDB Aggregation Framework ofrece mucho más que simples consultas. Su versatilidad y potencia hacen que sea una herramienta esencial para cualquier desarrollador o analista que trabaje con datos extensos y complejos. Si estás buscando llevar tus capacidades de análisis de datos al siguiente nivel, considera explorar más sobre este tema. Y si te interesa un curso especializado sobre esta herramienta, estaría encantado de ayudar en tu aprendizaje.
BALFRE VAZQUEZ CASTREJON
Seria excelente ver el curso de aggregation framework
Jerald Jeanphierre Espinoza Flores
X2
takeshi hp
x3
Carlos Eduardo Bracho Rosales
También doy mi voto 🙋 para ese curso. Pero mientras esperamos un curso de Aggregation Framework, aqui les dejo un articulo para profundizar en este tema: Introduction to the MongoDB Aggregation Framework
Diego Jurado
Gracias por ir complementando sobre este tema para el manejo de datos.
Juan Camilo Lentino Villalba
Aggregation Framework merece un curso completo
Fernando Sanchez Chavez
x2
Aggregation Framework
El Aggregation Framework en MongoDB es una potente herramienta que permite realizar operaciones de procesamiento y transformación avanzadas en los datos almacenados en una colección. La función aggregate() es la interfaz que activa el uso del Aggregation Framework desde el lenguaje de consultas de mongo.
Método .aggregate()
El método .aggregate() de MongoDB realiza operaciones de agregación utilizando un conjunto de etapas llamadas "pipelines". Cada etapa en el pipeline representa una transformación o acción específica que se aplica secuencialmente a los documentos de la colección. Las etapas en el pipeline pueden incluir operadores como $match, $project, $group, $sort, entre otros.
Pipeline
El pipeline es una secuencia de etapas encadenadas, y cada etapa recibe los resultados de la etapa anterior. La estructura básica de una agregación es un arreglo de objetos, donde cada objeto representa una etapa del pipeline.
db.coleccion.aggregate([ { $match: { campo: valor } }, { $group: { _id: "$campo", total: { $sum: "$otroCampo" } } }, { $sort: { total: -1 } } ])
Algunos operadores para .aggregate()
$match: Filtra los documentos que cumplen con una condición, es un filtro, como el primer parámetro del método .filter().
$group: Agrupa documentos según un campo y realiza operaciones de agregación como suma, promedio, etc.
Ejemplo:
db.ventas.aggregate([ { $group: { _id: "$producto", totalVentas: { $sum: "$cantidad" } } } ])
En este ejemplo, $group agrupa los documentos por el campo "producto" y calcula la suma total de la cantidad vendida para cada producto.
$project: Proyecta los datos que deseamos ver o no ver en la consulta, es una proyección/projection.
$sort: Ordena los resultados según un campo específico.
Juan Camilo Noreña López
La consulta final funciona sin la projection.
db.listingsAndReviews.aggregate([ { $match: { amenities: "Wifi"} }, // find { $group: { _id: "$address.country", count: { $sum: 1 } } } ])
Àlex Grau Roca
Con el aggregate puedes llegar a hacer prácticamente de todo lo que se te pase por la cabeza, en mi trabajo estamos migrando varios mapReduce complejos a aggregate y es un mundo fascinante.
Carlos Guzman
Quiero curso de Aggregation Framework!!
Brandon Gutierrez
Todos estamos de acuerdo que se ocupa un curso enfocado a aggrefation framework o por lo menos un modulo delicado a este.
Mateo Ramos
Seria excelente ver un curso de aggregation framnweork
jean carlos ivan galvis ibarra
Voto para que se haga un curso de aggregation framework
Italo Enrique Beltrán Hervias
Si un curso de Aggregation Framework Por favor
JAMES WILLIAM MONTENEGRO DAZA
EXCELENTE se debe hacer un curso solo de Aggregation framework
Rogelio Esteban
que desventajas tiene una base de datos documental como Mongo, en comparación con una base de datos relacional digaamos SQLServer o Oracle, por tanto en que casos de uso no se recomendaría tenerla???
Roberto Shirásago Domínguez
Cuando inicio el curso el profesor hablo de que son para grandes volumenes de datos, es como por ejemplo si haces una colección con la info del usuario vas directamente por el documento que tiene la info a diferencia de ir a una base de datos relacional donde probablemente los datos esten en más de una tabla.
Luis Fernando Rico Ortiz
No solo un curso aggregation framework, tambien seria interesante las otras funcionalidades que tiene atlas como lo es "search", "app services" o "charts"
Yahel Yolanda Soto de León Gaytán
Siii por favor un curso de aggregation framework !!!!
Jessica Placencio
Vale la pena destacar lo siguiente:
$match, $group, $project y $lookup, así como expresiones como $eq, $add, $subtract, $and, etc.find(), por ejemplo para comparar campos entre sí o realizar operaciones matemáticas y lógicas.Juan Carlos Montilla Sánchez
¡Quiero un curso de Aggregation Framework!
Roberto Shirásago Domínguez
Joseph Carlos Magallanes Nolazco
Si desearia ver un curso sobre de aggregation framework
Emanuel Salazar
Ronaldo Jiménez
use('football') // 1. Total de goles por torneo (entre los goleadores) db.scorers.aggregate([ { $group: { _id: "$torneo", totalGoles: { $sum: "$goles" } }}, { $sort: { totalGoles: -1 } } ]) // 2. Total equipos por liga use('football') db.teams.aggregate([ { $group: { _id: "$league", numEquipos: { $count: {} } }} ]) // 3. Total de goles por torneo (entre los goleadores) con más de 19 goles use('football'); db.scorers.aggregate([ { $match: { goles: { $gt: 19 } } }, { $group: { _id: "$torneo", total_goles: { $sum: "$goles" }, total_jugadores: { $sum: 1 } } } ]);