$lookup

MongoDB 🟡 Mid

Dé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

Faire des $lookup sur des collections non indexées sur le foreignField, rendant la jointure O(n*m).
#sgbd#interview#database#mongodb

En entretien

  1. 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é.

  2. 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

← → au clavier pour passer d'une fiche à l'autre