Can't get Mongoose virtuals to be part of the result object Can't get Mongoose virtuals to be part of the result object mongoose mongoose

Can't get Mongoose virtuals to be part of the result object


Because you're using JSON.stringify in your console.log call, that invokes the toJSON method on the model instance, not toObject.

So either omit the JSON.stringify in your call:

console.log(results[0]);

Or set the toJSON option on the schema like you're currently setting the toObject option.

...{    toObject: { virtuals: true },    toJSON: { virtuals: true }});


My mistake was not including the needed fields in the query.If they are not selected in projection, then mongoose does not knows how to combine/calculate the virtual field.


I ended up here doing something really silly. I was using Doc.find instead of Doc.findOne and so I was trying to access the virtual on the document array instead of on the document itself.