$project
MongoDB 🟡 MidDéfinition
Stage d'aggregation qui restructure les documents en incluant, excluant ou créant de nouveaux champs calcules. Permet de renommer des champs et d'appliquer des expressions.
Analogie
Un monteur vidéo qui sélectionne les scènes a garder et ajoute des effets spéciaux.
Exemple de code
{ $project: {
fullName: { $concat: ['$first', ' ', '$last'] },
year: { $year: '$createdAt' },
_id: 0
}}
Cas d'usage
Formater la sortie de l'aggregation pour qu'elle corresponde exactement au format attendu par le frontend.
Termes liés
En entretien
Quelle différence entre $project et $addFields ?
$project restructure les documents en incluant, excluant ou créant des champs calculés, et permet aussi de renommer des champs, alors que $addFields se contente d'ajouter des champs sans supprimer les existants. $project sert notamment à formater la sortie de l'aggregation pour qu'elle corresponde au format attendu par le frontend.
Comment exclurais-tu le champ _id tout en créant un champ calculé avec $project ?
Dans le même stage $project, tu ajoutes une expression comme $concat pour créer le champ calculé et tu mets _id: 0 pour l'exclure explicitement. C'est exactement ce que fait un monteur vidéo qui sélectionne les scènes à garder et ajoute des effets spéciaux.
Fiche mise à jour le 2026-09-27