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 • Equipo 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?

Juega un momento antes de irte

NUESTROS SERVICIOS

Cómo podemos ayudarte

Inteligencia artificial

Agentes de IA, chatbots y asistentes inteligentes que automatizan tareas y atienden a tus clientes 24/7 para mejorar la eficiencia de tu negocio.

Más info

Desarrollo de software

Aplicaciones web, móviles y de escritorio, intranets, e-commerce, SaaS y plataformas de gestión diseñadas para las necesidades concretas de tu empresa.

Más info

Servicios cloud

Migración, infraestructura, hosting gestionado, alta disponibilidad y seguridad en Microsoft Azure y Amazon Web Services para que tu negocio escale sin límites.

Más info

Ciberseguridad y pentesting

Auditorías de seguridad, test de intrusión (pentesting) y protección de aplicaciones, datos e infraestructura on-premise y cloud, con hacking ético y cumplimiento normativo.

Más info

Business Intelligence

Cuadros de mando y análisis de datos con Power BI: integramos tus fuentes, diseñamos dashboards y KPIs y convertimos tus datos en decisiones.

Más info

Automatización de procesos

Automatizamos tareas repetitivas y conectamos tus aplicaciones con n8n, Power Automate, Make y RPA, eliminando trabajo manual y aumentando la productividad.

Más info

Formación para empresas

Formamos a tus equipos en tecnología con criterio: desarrollo web, bases de datos, Git, buenas prácticas y seguridad, automatización con n8n, inteligencia artificial para empresas y creación de soluciones de IA con Azure AI Foundry.

Más info

Auditoría de código

Auditamos el código que creas tú, tu equipo o una IA: te decimos qué está bien y qué mejorar, lo securizamos y lo dejamos listo para producción, web o app.

Más info

Generación de imágenes con IA

Creamos por ti las imágenes que necesita tu negocio con inteligencia artificial: producto, redes, publicidad, ilustración y avatares. Tú nos dices qué quieres y te lo entregamos listo para usar.

Más info

Generación de vídeos con IA

Creamos por ti vídeos con inteligencia artificial: promocionales, para redes, presentadores virtuales, doblaje y animaciones. Nos cuentas la idea y te lo entregamos montado y listo para publicar.

Más info

Avatares conversacionales con IA

Creamos avatares conversacionales con IA —humanos digitales con cara y voz— que atienden a tus clientes y equipos con el conocimiento de tu empresa, en tu web, monitores interactivos, WhatsApp o Teams.

Más info

Marketing Online e IA

Google Ads, Meta Ads, LinkedIn Ads y posicionamiento en motores de IA (GEO/AEO): captamos clientes y hacemos que tu marca aparezca donde te buscan, también en ChatGPT, Gemini y Perplexity.

Más info

¿Tienes un proyecto en mente?

Cuéntanos tu visión y la convertimos en una solución de software. Sea cual sea el alcance, hacemos realidad tu idea.

Live Chat