MongoDB · Lección 08
¿Cómo se escribe un pipeline de agregación eficiente?
$lookup es equivalente a un join relacional optimizado y se recomienda usarlo en todas las consultas en lugar de incrustar o desnormalizar datos
Procesa documentos por etapas ($match, $group, $sort, $lookup…); conviene poner $match y $project al principio para reducir datos y poder usar índices, las etapas bloqueantes tienen límite de memoria (100 MB) y pueden necesitar allowDiskUse según la versión, y $lookup necesita un índice en el campo de la colección unida
Las etapas como $group o $sort no tienen ningún límite de memoria y nunca necesitan escribir a disco, sea cual sea el tamaño de los datos
El orden de las etapas no importa: el optimizador siempre reordena el pipeline y es igual de eficiente poner $match al final que al principio
MongoDB · Lección 08
Completa el código
La etapa que filtra documentos al inicio del pipeline es $
Revisa: $match.
MongoDB · Lección 08
¿Por qué poner $match al principio del pipeline mejora el rendimiento?
Pista: reduce cuántos documentos pasan a las etapas siguientes y puede usar un índice, así las etapas posteriores trabajan con menos datos; un $match al final procesaría todo antes de filtrar.
✓
¡Lección completada!
Pipeline de agregación
0
XP ganado
3
Vidas restantes