我在另一个答案中看到,为了包含虚拟字段,您必须执行https://groups.google.com/forum/?fromgroups#!topic/mongoose-orm/HjrPAP_WXYs
var schemaOptions = {
toJSON: {
virtuals: true
}
};
我已经完成了;
现在在Schema中:
new Schema({...}, schemaOptions);
但仍然如此,数据不包括虚拟..:s
但是这样有效:
var docsCallback = function(err, docs){
var i = docs.length;
var nDocs = [];
while(i--){
nDocs[i] = docs[i].toObject({virtuals: true});
}
done(nDocs);
}
答案 0 :(得分:53)
刚试过:
var schemaOptions = {
toObject: {
virtuals: true
}
};
并且工作了! ;)
现在默认我使用:
var schemaOptions = {
toObject: {
virtuals: true
}
,toJSON: {
virtuals: true
}
};
答案 1 :(得分:11)
你也可以这样做:
docs.set('toJSON', { virtuals: true });
答案 2 :(得分:0)
对我来说,它仅在向mongoose docs中提到的模式选项中添加getters: true
后才起作用,即
var schemaOptions = {
toObject: {
getters: true
},
toJSON: {
getters: true
}
};