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
数组