Virtual Populate

Mongoose 🔴 Senior

Definition

Permet de populer une relation sans stocker de reference dans le document parent. Utilise un champ du document enfant comme foreignField pour la jointure.

Analogie

Trouver tous les colis livres a une adresse sans que l'adresse ait une liste de colis.

Exemple de code

authorSchema.virtual('books', {
  ref: 'Book',
  localField: '_id',
  foreignField: 'author'
});
await Author.findById(id).populate('books');

Cas d'usage

Creer une relation one-to-many sans tableau de references dans le parent, evitant les documents trop gros.

#sgbd#interview#database#mongoose