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 de lectura • Equipo Q2BSTUDIO

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.

¿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