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 read • Q2BSTUDIO Team

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.

A BREAK?

Play for a moment before you go

OUR SERVICES

How we can help you

Artificial intelligence

AI agents, chatbots, and intelligent assistants that automate tasks and serve your customers 24/7 to improve the efficiency of your business.

More info

Software Development

Web, mobile, and desktop applications, intranets, e-commerce, SaaS, and management platforms designed for your company's specific needs.

More info

Cloud services

Migration, infrastructure, managed hosting, high availability, and security on Microsoft Azure and Amazon Web Services to help your business scale without limits.

More info

Cybersecurity and pentesting

Security audits, penetration testing and protection of applications, data and infrastructure on-premise and cloud, with ethical hacking and regulatory compliance.

More info

Business Intelligence

Dashboards and data analysis with Power BI: we integrate your sources, design dashboards and KPIs and turn your data into decisions.

More info

Process automation

We automate repetitive tasks and connect your applications with n8n, Power Automate, Make, and RPA, eliminating manual work and increasing productivity.

More info

Training for Companies

We train your teams in technology with criteria: web development, databases, Git, best practices and security, automation with n8n, artificial intelligence for companies and creation of AI solutions with Azure AI Foundry.

More info

Code Auditing

We audit the code that you, your team or an AI create: we tell you what is good and what to improve, we secure it and make it ready for production, web or app.

More info

AI Image Generation

We create for you the images that your business needs with artificial intelligence: product, networks, advertising, illustration and avatars. You tell us what you want and we deliver it ready to use.

More info

AI Video Generation

We create videos with artificial intelligence for you: promotional, networking, virtual presenters, dubbing and animations. You tell us the idea and we will deliver it assembled and ready to publish.

More info

AI Conversational Avatars

We create conversational avatars with AI – digital humans with a face and voice – that serve your customers and teams with the knowledge of your company, on your website, interactive monitors, WhatsApp or Teams.

More info

Online Marketing and AI

Google Ads, Meta Ads, LinkedIn Ads and AI Engine Positioning (GEO/AEO): we attract customers and make your brand appear where they search for you, also on ChatGPT, Gemini and Perplexity.

More info

Do you have a project in mind?

Tell us your vision and we'll turn it into a software solution. Whatever the scope, we make your idea real.