I saw in another answer that in order to include the virtual fields you must do like https://groups.google.com/forum/?fromgroups#!topic/mongoose-orm/HjrPAP_WXYs
var schemaOptions = { toJSON: { virtuals: true } };
which I've done;
Now in the Schema:
new Schema({...}, schemaOptions);
But still so, the data doesn't include the virtual.. :s
But like this works:
var docsCallback = function(err, docs){ var i = docs.length; var nDocs = []; while(i--){ nDocs[i] = docs[i].toObject({virtuals: true}); } done(nDocs); }
In Mongoose, a virtual is a property that is not stored in MongoDB. Virtuals are typically used for computed properties on documents.
Mongoose virtuals are not stored in MongoDB, which means you can't query based on Mongoose virtuals. If you want to query by a computed property, you should set the property using a custom setter or pre save middleware.
Virtuals are document properties that do not persist or get stored in the MongoDB database, they only exist logically and are not written to the document's collection.
Just tried:
var schemaOptions = { toObject: { virtuals: true } };
and worked! ;)
Now by default I use:
var schemaOptions = { toObject: { virtuals: true } ,toJSON: { virtuals: true } };
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With