Embedding vs Referencing
MongoDB 🟡 MidDéfinition
Choix de design fondamental en MongoDB : embarquer les données liées dans le même document (denormalisation) ou stocker une référence (ObjectId) vers un autre document (normalisation).
Analogie
Coller la photo dans le passeport (embedding) ou noter un numéro de dossier renvoyant a la photo (referencing).
Exemple de code
// Embedding
{ name: 'Alice', address: { city: 'Paris' } }
// Referencing
{ name: 'Alice', addressId: ObjectId('...') }
Cas d'usage
Embedding pour les relations 1:1 et 1:few lues ensemble. Referencing pour les relations 1:many ou many:many.
Anti-pattern
Termes liés
En entretien
Comment choisis-tu entre embedding et referencing pour modéliser une relation ?
L'embedding convient aux relations 1:1 et 1:few lues ensemble, comme coller la photo dans le passeport, alors que le referencing via ObjectId convient aux relations 1:many ou many:many, comme un numéro de dossier renvoyant à la photo. Le choix dépend donc de la cardinalité et du fait que les données soient consultées ensemble.
Quel est le risque si tu embarques un tableau qui grandit sans limite ?
Le document risque de dépasser la limite de 16 Mo par document, ce qui est l'anti-pattern classique de l'embedding mal maîtrisé. Dans ce cas, il vaut mieux basculer vers du referencing.
Fiche mise à jour le 2026-09-27