Virtual Properties

Mongoose 🟡 Mid

Définition

Propriétés calculées qui n'existent pas en base mais sont disponibles sur le document Mongoose. Définies via des getters et setters sur le schema.

Analogie

L'âge d'une personne : il n'est pas stocke, il est calcule a partir de la date de naissance.

Exemple de code

userSchema.virtual('fullName').get(function() {
  return `${this.firstName} ${this.lastName}`;
});
const user = await User.findById(id);
console.log(user.fullName);

Cas d'usage

Créer des champs derives comme fullName, âge ou un URL complète sans les stocker en base.

Anti-pattern

Oublier { toJSON: { virtuals: true } } dans le schema, les virtuals n'apparaissent pas dans les réponses API.

Termes liés

#sgbd#interview#database#mongoose

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