Un pipeline de agregación en MongoDB funciona como una línea de producción: los datos de una colección entran al pipeline y se van transformando paso a paso a través de una serie de etapas (stages). Cada etapa recibe los documentos que salieron de la etapa anterior, les aplica una operación y los pasa a la siguiente. Al final del pipeline obtenés el resultado procesado y resumido que necesitás. Este mecanismo es el equivalente a losDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/danielcruca/plataformas-abiertas-2026-2c/llms.txt
Use this file to discover all available pages before exploring further.
GROUP BY, JOIN y subconsultas de SQL, pero expresado de forma declarativa y componible.
Etapas del pipeline
| Etapa | ¿Qué hace? | Ejemplo simple |
|---|---|---|
$match | Filtra documentos (como un WHERE) | Solo ventas del 2025 |
$group | Agrupa documentos y calcula valores (como un GROUP BY) | Total vendido por producto |
$sort | Ordena los resultados | De mayor a menor cantidad vendida |
$project | Escoge y transforma los campos a mostrar | Mostrar solo nombre y total |
$limit | Muestra solo cierta cantidad de resultados | Los 5 productos más vendidos |
$lookup | Une datos de otra colección (como un JOIN) | Buscar el stock del producto |
$unwind | Descomprime un campo array en documentos individuales | Procesar cada elemento del resultado de un $lookup |
Ejemplos con la base de datos libreria
Los siguientes ejemplos usan las colecciones ventas y libros de la base de datos libreria del curso. Cada uno muestra un caso de uso real junto a su equivalente en SQL.
a. Cantidad vendida de libros por fecha específica
Este pipeline filtra las ventas de un día particular, agrupa los resultados por título de libro sumando las cantidades vendidas, y los ordena de mayor a menor. Etapas utilizadas:$match → $group → $sort
- MongoDB
- SQL equivalente
b. Libros con al menos una venta
Este pipeline filtra solo los registros con cantidad mayor a cero, luego agrupa por título sumando el total vendido y ordena los resultados. Etapas utilizadas:$match → $group → $sort
- MongoDB
- SQL equivalente
c. Libros vendidos y su stock restante
Este es el ejemplo más completo. Combina varias etapas para calcular cuántas unidades quedan en stock después de las ventas. El$lookup actúa como un JOIN con la colección libros, y $unwind descomprime el array resultante para poder acceder a sus campos en $project.
Etapas utilizadas: $group → $lookup → $unwind → $project → $sort
- MongoDB
- SQL equivalente
En MongoDB no existen claves foráneas como en SQL. El
$lookup simula ese comportamiento comparando los valores de dos campos entre colecciones. Por eso es importante que los valores que usás como “clave” (en este caso el título del libro) sean consistentes entre ventas y libros.d. Top 5 libros más vendidos
Este pipeline agrupa todas las ventas por título, suma las cantidades, ordena de mayor a menor y recorta el resultado a los primeros 5 documentos. Etapas utilizadas:$group → $sort → $limit
- MongoDB
- SQL equivalente
Ejemplo sencillo: libros agrupados por autor
Para terminar, un ejemplo introductorio que muestra cómo agrupar los libros del catálogo por autor y contar cuántos libros tiene cada uno. Es un buen punto de partida para entender la mecánica básica del pipeline sin la complejidad de un$lookup.