$facet
MongoDB 🔴 SeniorDefinition
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.