$project

MongoDB 🟡 Mid

Dé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.

#sgbd#interview#database#mongodb

En entretien

  1. 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.

  2. 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

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