Embedding vs Referencing
MongoDB 🟡 MidDefinition
Choix de design fondamental en MongoDB : embarquer les donnees liees dans le meme document (denormalisation) ou stocker une reference (ObjectId) vers un autre document (normalisation).
Analogie
Coller la photo dans le passeport (embedding) ou noter un numero 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
Embarquer des tableaux qui grandissent indefiniment, depassant la limite de 16 Mo par document.