Virtual Properties

Mongoose 🟡 Mid

Definition

Proprietes calculees qui n'existent pas en base mais sont disponibles sur le document Mongoose. Definies via des getters et setters sur le schema.

Analogie

L'age 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

Creer des champs derives comme fullName, age ou un URL complete sans les stocker en base.

Anti-pattern

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

Termes lies

#sgbd#interview#database#mongoose