Beginner LevelMongoDB & Mongoose
What are Mongoose Virtual Properties and custom getters/setters?
❓ Interview Prompt: Explain Mongoose Virtuals, computed properties, getters/setters, and serializing virtuals to JSON (toJSON: { virtuals: true }).
Virtuals are document attributes that can be read and set but are NOT persisted to MongoDB storage:
Use Cases:
•
Combine 'firstName' and 'lastName' into a computed 'fullName' property.
•
Define virtual populate relationships across separate collections.
Code Implementation Example
typescript
import { Schema } from 'mongoose';
const userSchema = new Schema({
firstName: String,
lastName: String
}, { toJSON: { virtuals: true } });
// Computed virtual property
userSchema.virtual('fullName').get(function () {
return '${this.firstName} ${this.lastName}';
});💡Defining Mongoose virtual properties for dynamic computed attributes.
🎯 Interview Key Takeaway
Use Mongoose virtuals for computed fields that do not need persistent storage in MongoDB.
#Virtuals#Mongoose#Computed Properties#Beginner
Back to all MongoDB & Mongoose Questions→