$facet

MongoDB 🔴 Senior

Définition

Stage d'aggregation qui exécute plusieurs sous-pipelines en parallèle sur le même jeu de documents. Chaque sous-pipeline produit un résultat indépendant dans un seul document de sortie.

Analogie

Un journaliste qui écrit trois angles différents du même evenement en même temps.

Exemple de code

{ $facet: {
  byCategory: [
    { $group: { _id: '$cat', n: { $sum: 1 } } }
  ],
  priceStats: [
    { $group: { _id: null, avg: { $avg: '$price' } } }
  ],
  total: [{ $count: 'count' }]
}}

Cas d'usage

Générer un dashboard avec des statistiques multiples en un seul appel a la base.

#sgbd#interview#database#mongodb

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