Rendimiento de $lookup en MongoDB

Aprende a optimizar lookups en MongoDB: de minutos a milisegundos, evita expr en subpipelines y usa localField/foreignField con índices para removedAt.

7 sept 2025 • 4 min read • Q2BSTUDIO Team

Inteligencia-Artificial-

Rendimiento de lookup en MongoDB: cómo pasé de consultas de minutos a milisegundos y qué aprendí por el camino

Un día normal recibí un aviso del tech lead: tu consulta es demasiado lenta. El plan de ejecución mostraba que la agregación tardó 33 minutos. Ese fue el inicio de una pequeña investigación para entender por qué un lookup puede volverse tan costoso y cómo optimizarlo de forma segura.

El escenario era típico en una aplicación bancaria con colecciones grandes y soft delete mediante el campo removedAt. La agregación hacía dos lookups con subpipelines y uso de expr para comparar el id de la colección secundaria con variables definidas en let, además de filtrar removedAt en null. A simple vista parecía correcto, pero el rendimiento era un problema serio.

Primero probé cada etapa por separado. Solo el match inicial tardó 10 ms y usaba un índice sencillo por company y type. Al añadir el primer lookup, el tiempo subió a 314 ms. Con ambos lookups, la respuesta pasó a 6 minutos. Claramente, el cuello de botella estaba en los lookups.

Para entenderlo, conviene recordar qué hace lookup. Este operador permite unir documentos de otra colección a través de dos enfoques principales: localField y foreignField para un join directo, o let más pipeline para casos avanzados donde se requieren condiciones adicionales. Aunque el pipeline ofrece flexibilidad, cada etapa extra implica más trabajo para el motor.

El gran problema vino al usar expr dentro del subpipeline del lookup. Según la documentación oficial, expr puede referirse a variables definidas en let, pero al hacerlo MongoDB evalúa la condición documento a documento dentro de la colección de destino. Esto reduce drásticamente el aprovechamiento de índices, especialmente cuando se compara el id con una variable u otras expresiones. A medida que crece la colección, el coste escala de forma no lineal.

La solución más efectiva fue reemplazar el join basado en expr por el patrón localField y foreignField siempre que fuera posible. En nuestro caso, unir company con el id de Company y customer con el id de Customer, y dejar los filtros de removedAt como pasos separados o soportados por índices adecuados. Solo con ese cambio, el tiempo de respuesta pasó de cientos de milisegundos a algunas decenas. En una de las pruebas, quitar un pipeline innecesario redujo el tiempo de 259 ms a 36 ms.

Recomendaciones prácticas que funcionaron en producción

– Prioriza localField y foreignField para que el motor use índices de manera óptima.

– Evita expr dentro de subpipelines del lookup salvo que sea imprescindible; fuerza evaluaciones por documento y encarece la consulta.

– Si necesitas condiciones adicionales, combina localField y foreignField con un pipeline mínimo y bien indexado en la colección de destino.

– Considera índices compuestos o parciales que soporten removedAt en null cuando uses soft delete.

– Mide siempre con explain, aislando etapas para identificar el cuello de botella real.

Resultado final de la optimización

La agregación quedó estructurada con un match inicial sencillo, dos lookups usando localField y foreignField para Company y Customer respectivamente, y un match final para filtros adicionales. Sin subpipelines costosos ni expr en los joins. El rendimiento pasó de minutos a milisegundos de forma consistente.

Por qué esto importa para tu negocio

Si tu plataforma procesa grandes volúmenes de datos, optimizar consultas de MongoDB impacta en la experiencia de usuario, en los costes de infraestructura y en la estabilidad general del sistema. En Q2BSTUDIO ayudamos a equipos a diseñar arquitecturas eficientes y escalables, desde bases de datos hasta backends y microservicios, con un enfoque de software a medida y aplicaciones a medida adaptadas a cada caso de uso. Descubre cómo abordamos estos retos en nuestro servicio de desarrollo de aplicaciones a medida y software a medida.

Más allá del rendimiento de consultas, contamos con especialistas en inteligencia artificial, ia para empresas, agentes IA, ciberseguridad y pentesting, servicios cloud aws y azure, así como servicios inteligencia de negocio con power bi. Diseñamos soluciones end to end que aceleran la toma de decisiones y maximizan el valor de tus datos, tanto on premise como en la nube. Si operas en entornos elásticos o necesitas optimizar costes y disponibilidad, explora nuestros servicios cloud AWS y Azure.

Palabras clave que cuidamos en cada proyecto: 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. Podemos ayudarte a auditar tus agregaciones, redefinir índices, automatizar procesos críticos y consolidar prácticas de observabilidad para que tu plataforma crezca sin sorpresas.

Resumen accionable

– Usa joins con localField y foreignField siempre que sea viable.

– Minimiza o elimina pipelines dentro de lookup cuando no aporten valor real.

– Evita expr en subpipelines para no perder el beneficio de índices.

– Asegura índices adecuados para los filtros más usados, incluyendo removedAt si aplicas soft delete.

– Mide, compara y documenta los cambios con explain y métricas de producción.

Si tu equipo necesita apoyo para elevar el rendimiento de MongoDB y de tu plataforma en general, Q2BSTUDIO está listo para acompañarte con experiencia probada en escalabilidad, inteligencia artificial, ciberseguridad y cloud.

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.

Live Chat