Node.js 如何在mongoose中递归地获取附加到模型的所有对象

Node.js 如何在mongoose中递归地获取附加到模型的所有对象,node.js,mongoose,nested,Node.js,Mongoose,Nested,想象一下这两个嵌套的猫鼬模型,一个投票,包含候选人列表 var candidateSchema=新模式({ 名称:String }); var voteSchema=新模式({ 候选项:[{type:Schema.Types.ObjectId,ref:'Candidate'}] }); voteSchema.methods.addCandidate=函数addCandidate(newCandidate,回调){ this.candidates.addToSet(newCandidate); 保

想象一下这两个嵌套的猫鼬模型,一个投票,包含候选人列表

var candidateSchema=新模式({
名称:String
});
var voteSchema=新模式({
候选项:[{type:Schema.Types.ObjectId,ref:'Candidate'}]
});
voteSchema.methods.addCandidate=函数addCandidate(newCandidate,回调){
this.candidates.addToSet(newCandidate);
保存(回调);
};
var Vote=mongoose.model('Vote',voteSchema);
var投票=新投票();
候选变量=mongoose.model('candidates',candidateSchema);
var候选者=新候选者({name:'Guillaume Vincent'});
投票。增加候选人(候选人);
console.log(投票);//{id:53d613fdadfd08d9ebea6f88,候选者:[53d68476fc78cb55f5d91c17]}
console.log(vote.toJSON());//{id:53d613fdadfd08d9ebea6f88,候选者:[53d68476fc78cb55f5d91c17]}
如果我使用
candidateSchema][candidateSchema]
而不是
candidates:[{type:Schema.Types.ObjectId,ref:'Candidate'}]
那么
console.log(投票)显示:

{
_id:53d613fdadfd08d9ebea6f88,
候选人:[{id:53d613fdadfd08d9ebea6f86,姓名:'Guillaume Vincent'}]
}
我的问题是:

使用
candidates:[{type:Schema.Types.ObjectId,ref:'Candidate'}]
如何递归地获取附加到模型的所有对象?与
候选人相同的行为:[candidateSchema]


我不使用嵌入式模式,因为我希望在更新候选人时更新我的投票(请参见)

您看过Mongoose对我的支持了吗

例如:

Vote.find().populate('candidates').exec(callback);
将使用每个id的完整
Candidate
对象填充
candidates
数组