$lookup
MongoDB 🟡 MidDéfinition
Stage d'aggregation qui réalise une jointure gauche (LEFT JOIN) entre deux collections. Ajoute un tableau de documents correspondants depuis la collection jointe.
Analogie
Appeler le service comptabilité pour joindre les factures de chaque client a leur fiche.
Exemple de code
{ $lookup: {
from: 'orders',
localField: '_id',
foreignField: 'userId',
as: 'userOrders'
}}
Cas d'usage
Combiner des données de collections séparées quand l'embedding n'est pas adapte.
Anti-pattern
Termes liés
En entretien
Que fait $lookup et quand l'utiliser plutôt que l'embedding ?
$lookup réalise une jointure gauche entre deux collections et ajoute un tableau de documents correspondants, un peu comme appeler le service comptabilité pour joindre les factures de chaque client à sa fiche. On l'utilise pour combiner des données de collections séparées quand l'embedding n'est pas adapté.
Comment debugger un $lookup anormalement lent ?
Vérifier que le foreignField de la collection jointe est indexé, car un $lookup sur des collections non indexées sur ce champ rend la jointure en O(n*m). C'est l'anti-pattern principal à corriger sur ce stage.
Fiche mise à jour le 2026-09-27