Dominando las tuberías de agregación de MongoDB

Descubre qué es una Aggregation Pipeline de MongoDB, sus etapas clave ($match, $lookup, $addFields, $project) y cómo se compara con SQL, con un ejemplo práctico.

7 sept 2025 • 6 min de lectura • Equip Q2BSTUDIO

Inteligencia-Artificial-

Cuando empecé a programar, lo primero que aprendí fue SQL. Escribía consultas con WHERE, HAVING y hacía JOIN entre tablas para encontrar relaciones y obtener insights.

Luego pasé a MongoDB y lo usaba casi siempre para tareas sencillas: insert, find, update y delete. Conocía algunos operadores como $set, $or, $in. Sinceramente, pensaba que MongoDB era solo CRUD básico.

Hasta que descubrí las tuberías de agregación, o Aggregation Pipelines.

Ahí todo cambió. Me di cuenta de que en MongoDB puedes:

- filtrar datos como con WHERE

- agrupar resultados como con GROUP BY

- e incluso hacer joins con $lookup

En este artículo comparto lo esencial para dominarlas:

- qué es una tubería y cómo funciona

- por qué los operadores de MongoDB empiezan con el signo $

- las etapas más útiles: $match, $lookup, $addFields, $project

- comparaciones con SQL para entenderlas rápido

- un desglose paso a paso de un caso real de controlador que uso en proyecto

Verás que las consultas en MongoDB pueden ser tan potentes como en SQL, solo que se escriben con otro estilo.

Qué es una Aggregation Pipeline

Piensa en una tubería como una cadena de pasos. Cada etapa recibe documentos, los procesa y entrega el resultado a la siguiente. Es como un filtro en cadena:

- Primera etapa: filtra usuarios

- Segunda etapa: une sus suscripciones

- Tercera etapa: añade campos calculados

- Etapa final: proyecta solo lo necesario

Idea clave: la salida de una etapa es la entrada de la siguiente. Si comienzas con 100 documentos y tras la primera etapa te quedas con 50, esos 50 son los que siguen en la cadena. Orden y reducción temprana importan.

Por qué el signo $ en los operadores

En MongoDB, todas las etapas y operadores comienzan con $. Es la forma de indicar que se trata de una instrucción especial y no de un nombre de campo. Algunos equivalentes útiles con SQL:

- $match equivalente a WHERE

- $group equivalente a GROUP BY

- $project equivalente a SELECT

- $lookup equivalente a JOIN

Cuando veas el signo $, piensa en una palabra clave del motor de agregación.

Etapas de agregación y su comparación con SQL

- $match filtra documentos, como WHERE edad mayor que 20

- $project selecciona columnas, como SELECT nombre y email

- $group agrupa y agrega, como GROUP BY país con conteos

- $sort ordena resultados, como ORDER BY fecha

- $limit limita el número de filas, como LIMIT 10

- $lookup realiza uniones entre colecciones, similar a JOIN

Ejemplo real de un proyecto

Objetivo: obtener el perfil de canal de un usuario al estilo YouTube.

Flujo del pipeline:

- $match filtra por username en la colección de usuarios

- $lookup une con la colección Subscription para traer la lista de suscriptores del canal, usando el campo local _id del usuario y el campo remoto channel

- $lookup vuelve a unir con Subscription para obtener los canales a los que el usuario está suscrito, esta vez con el campo remoto subscriber

- $addFields añade campos calculados: subscribersCount como tamaño de la lista subscribers, channelsSubscribedToCount como tamaño de subscribedTo y un booleano issSubscribed que indica si el usuario actual está en la lista de suscriptores usando $in y $cond

- $project proyecta solo los campos necesarios: fullname, username, avatar, coverImage, subscribersCount, channelsSubscribedToCount, issSubscribed, email y createdAt

Si la consulta no devuelve documentos, respondemos con error de canal no encontrado; en caso contrario retornamos el primer resultado.

Desglose paso a paso

Comprobación de entrada: validar que llega un username en la ruta; si falta, se lanza error 400 indicando que el identificador del canal es necesario.

Primera etapa con $match: filtra por username en minúsculas, igual que un WHERE username igual a valor en SQL.

Segunda etapa con $lookup para suscriptores: une usuarios con Subscription según usuario._id igual a subscription.channel y guarda el resultado en un arreglo llamado subscribers, análogo a un JOIN usuarios con suscripciones por canal.

Tercera etapa con $lookup para canales suscritos: usa usuario._id igual a subscription.subscriber y guarda el arreglo en subscribedTo, con lo cual sabemos a quién sigue el usuario.

Cuarta etapa con $addFields: agrega subscribersCount con $size de subscribers, channelsSubscribedToCount con $size de subscribedTo y el booleano issSubscribed con $cond y $in comprobando si el id del usuario autenticado está dentro de subscribers.subscriber.

Quinta etapa con $project: proyecta solo los campos relevantes, equivalente a SELECT de columnas concretas en SQL.

Cómo practicar tuberías

- Abre tu base en MongoDB Compass

- Entra a la pestaña Aggregations

- Añade etapas una a una y observa la transformación tras cada paso

Los conjuntos de datos de ejemplo como movies o airbnb son perfectos para practicar.

Operadores avanzados para cuando domines lo básico

- $unwind descompone arreglos y emite un documento por elemento

- $facet permite ejecutar múltiples subpipelines en paralelo para obtener varias salidas a la vez como conteos y promedios

- $bucket agrupa documentos por rangos definidos, útil para histogramas de edad o precio

- $bucketAuto calcula límites de bucket automáticamente según la distribución

- $graphLookup hace búsquedas recursivas en grafos o jerarquías

- $merge escribe resultados en una colección destino, ideal para vistas materializadas o colecciones de resumen

Conclusión

Durante años pensé que MongoDB era sinónimo de CRUD. Las aggregation pipelines demuestran que su potencia rivaliza con SQL, con una mentalidad diferente basada en pasos. La clave es pensar en:

- Filtrar con $match

- Unir con $lookup

- Calcular con $addFields

- Seleccionar con $project

Con este enfoque construí una API de perfil de canal que se siente como componer consultas SQL, pero con el estilo declarativo de MongoDB.

Si quieres llevar tu backend al siguiente nivel, dominar pipelines es el camino. Y si tu empresa busca crear soluciones de datos y analítica que conecten MongoDB con cuadros de mando y reporting, en Q2BSTUDIO podemos ayudarte con servicios inteligencia de negocio, power bi y procesamiento de datos de extremo a extremo. Conoce más sobre cómo impulsamos la toma de decisiones con analítica avanzada en Business Intelligence y Power BI.

Q2BSTUDIO es una empresa de desarrollo de software y aplicaciones a medida, especialistas en inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio y automatización. Diseñamos arquitecturas de datos robustas, implementamos agentes IA y soluciones de ia para empresas, y desplegamos integraciones seguras de extremo a extremo. Si necesitas un backend optimizado para datos o integrar pipelines de agregación con microservicios y APIs, explora cómo creamos aplicaciones a medida y software a medida de alto rendimiento en nuestra página de desarrollo de aplicaciones y software multiplataforma.

Palabras clave recomendadas para tu estrategia: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA y power bi.

UNA PAUSA?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Intel·ligència artificial

Agents d'IA, chatbots i assistents intel·ligents que automatitzen tasques i atenen els teus clients 24/7 per millorar l'eficiència del teu negoci.

Més info

Desenvolupament de programari

Aplicacions web, mòbils i d'escriptori, intranets, e-commerce, SaaS i plataformes de gestió dissenyades per a les necessitats concretes de la teva empresa.

Més info

Serveis cloud

Migració, infraestructura, hosting gestionat, alta disponibilitat i seguretat en Microsoft Azure i Amazon Web Services perquè el teu negoci escali sense límits.

Més info

Ciberseguretat i pentesting

Auditories de seguretat, test d'intrusió (pentesting) i protecció d'aplicacions, dades i infraestructura on-premise i cloud, amb hacking ètic i compliment normatiu.

Més info

Business Intelligence

Quadres de comandament i anàlisi de dades amb Power BI: integrem les teves fonts, dissenyem dashboards i KPIs i convertim les teves dades en decisions.

Més info

Automatització de processos

Automatitzem tasques repetitives i connectem les teves aplicacions amb n8n, Power Automate, Make i RPA, eliminant treball manual i augmentant la productivitat.

Més info

Formació per a empreses

Formem els teus equips en tecnologia amb criteri: desenvolupament web, bases de dades, Git, bones pràctiques i seguretat, automatització amb n8n, intel·ligència artificial per a empreses i creació de solucions d'IA amb Azure AI Foundry.

Més info

Auditoria de codi

Auditem el codi que creguis tu, el teu equip o una IA: et diem què està bé i què millorar, el securitzem i el deixem llest per a producció, web o app.

Més info

Generació d'imatges amb IA

Creem per tu les imatges que necessita el teu negoci amb intel·ligència artificial: producte, xarxes, publicitat, il·lustració i avatars. Tu ens dius què vols i t'ho lliurem llest per fer servir.

Més info

Generació de vídeos amb IA

Creem per tu vídeos amb intel·ligència artificial: promocionals, per a xarxes, presentadors virtuals, doblatge i animacions. Ens comptes la idea i t'ho lliurem muntat i llest per publicar.

Més info

Avatars conversacionals amb IA

Creem avatars conversacionals amb IA —humans digitals amb cara i veu— que atenen els teus clients i equips amb el coneixement de la teva empresa, a la teva web, monitors interactius, WhatsApp o Teams.

Més info

Màrqueting Online i IA

Google Ads, Meta Ads, LinkedIn Ads i posicionament en motors d'IA (GEO/AEO): captem clients i fem que la teva marca aparegui on et busquen, també a ChatGPT, Gemini i Perplexity.

Més info

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.