我在另一个答案,为了包括虚拟域你必须做喜欢看到https://groups.google.com/forum/?fromgroups#!topic/mongoose-orm/HjrPAP_WXYs
var schemaOptions = {
toJSON: {
virtuals: true
}
};
我已经做了;
现在的架构:
new Schema({...}, schemaOptions);
但还是那么,该数据不包括虚拟..:■
但是,像这样的工作:
var docsCallback = function(err, docs){
var i = docs.length;
var nDocs = [];
while(i--){
nDocs[i] = docs[i].toObject({virtuals: true});
}
done(nDocs);
}
只是尝试:
var schemaOptions = {
toObject: {
virtuals: true
}
};
和工作! ;)
现在,在默认情况下使用:
var schemaOptions = {
toObject: {
virtuals: true
}
,toJSON: {
virtuals: true
}
};
你可以做到这一点的方式,以及:
docs.set('toJSON', { virtuals: true });
对于我来说,只是加入后工作getters: true
要架构选项,如中提到猫鼬文档 ,即
var schemaOptions = { toObject: { getters: true }, toJSON: { getters: true } };
文章来源: Mongoose virtual fields included in toJSON by default: schemaOptions.toJSON.virtuals = true; still doesn't include virtual fields by default