$facet

MongoDB 🔴 Senior

Definition

Stage d'aggregation qui execute plusieurs sous-pipelines en parallele sur le meme jeu de documents. Chaque sous-pipeline produit un resultat independant dans un seul document de sortie.

Analogie

Un journaliste qui ecrit trois angles differents du meme evenement en meme 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

Generer un dashboard avec des statistiques multiples en un seul appel a la base.

#sgbd#interview#database#mongodb