Aggregation Pipeline

MongoDB 🟡 Mid

Définition

Framework de transformation de données ou les documents passent par une séquence d'étapes (stages). Chaque stage transforme les documents et les passe au suivant, comme un pipeline Unix. Depuis MongoDB 8.0, le stage $rankFusion combine les classements de plusieurs sous-pipelines (recherche hybride) ; $scoreFusion, généralement disponible depuis MongoDB 8.3, fait de même a partir d'une formule de score explicite.

Analogie

Une chaîne de montage en usine : chaque poste (stage) effectue une opération sur la pièce avant de la passer au suivant.

Exemple de code

db.orders.aggregate([
  { $match: { status: 'completed' } },
  { $group: {
    _id: '$customerId',
    total: { $sum: '$amount' }
  }},
  { $sort: { total: -1 } }
]);

Cas d'usage

Calculer des statistiques, générer des rapports ou transformer des données complexes directement dans MongoDB.

Anti-pattern

Mettre un $match après un $group non filtre, traitant des millions de documents inutilement.
#sgbd#interview#database#mongodb

En entretien

  1. Explique-moi l'Aggregation Pipeline.

    C'est un framework de transformation de données où les documents passent par une séquence d'étapes (stages), chaque stage transformant les documents avant de les passer au suivant, comme un pipeline Unix. On l'utilise pour calculer des statistiques, générer des rapports ou transformer des données complexes directement dans MongoDB.

  2. Quel anti-pattern de performance faut-il éviter dans un pipeline ?

    Mettre un $match après un $group non filtré, ce qui traite des millions de documents inutilement avant de filtrer. Il faut toujours placer les filtres le plus tôt possible dans la chaîne.

  3. À quoi sert le stage $rankFusion introduit par MongoDB 8.0 ?

    Il combine les classements de plusieurs sous-pipelines pour faire de la recherche hybride, par exemple mixer recherche full-text et recherche vectorielle. $scoreFusion, disponible depuis MongoDB 8.3, fait de même à partir d'une formule de score explicite.

Dans l'actu

  • 30/09 MongoDB annonce aussi Voyage rerank-3 (GA) et le reranking natif directement dans l'aggregation pipeline. Semaine 40 (1re moitié) · 28 – 30 septembre 2026 →
  • 30/09 MongoDB 9.0 passe en GA (débit annoncé jusqu'à 2×) : Queryable Encryption autorise les recherches par préfixe, suffixe et sous-chaîne sur champs chiffrés, et le reranking (Voyage rerank-3) s'exécute nativement dans l'aggregation pipeline. Bilan septembre 2026 →

Fiche mise à jour le 2026-09-27

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