This is my schema...
const personSchema = new Schema({
firstName: String,
lastName: String
});
This is my model...
const PersonModel = model('Persons', personSchema, 'persons');
This is my person object
const person = new PersonModel({
firstName: 'Rick',
lastName: 'Biruel'
});
When I save my object...
const result = await person.save();
...I wish my person object with a third virtual field called 'fullName' like this:
console.warn('result');
// result = {
// firstName: 'Rick',
// lastName: 'Biruel',
// fullName: 'Rick Biruel'
// };
To achieve this result, I tried this to no avail....
personSchema.post('save', async function () {
this.fullName = `${this.firstName} ${this.lastName}`;
});
P.S. No error occurs, but the third field 'fullName' doesn't exist in my person object. The fullName
field must not persist on database!
CodePudding user response:
You can achieve this using VirtualType, and you can also find an example that is very similar to your problem in Mongoose official documentation.