0
我设计了一个mongodb模式,一个计划有多个里程碑,每个里程碑有多个任务,每个任务都与外部任务文档相关联。 这里是猫鼬实现我的MongoDB架构设计使用猫鼬填充方法,但仍返回ObjectID而不是文档
var PlanSchema = new mongoose.Schema({
plan:[ Milestone ]
});
var Milestone = mongoose.Schema({
goal:String,
tasks: [
{ type: ObjectId, ref: 'Task' }
]
});
现在的目标是要找到某种里程碑的所有任务的计划,
PlanModel
.findOne({'_id':pid },
{
'plan':{ $slice: [ milestone_number, 1 ] },
'plan.tasks':1,'plan.goal':1
}, function(err, doc){
if(err){ callback(err, null); }
else {
callback(null, doc);
}
});
它的工作原理,但显然检索的任务只是任务对象ID的阵列,我要的是任务的文件,所以我尝试了填入方法
PlanModel
.findOne({'_id':pid },
{
'plan':{ $slice: [ number, 1 ] },
'plan.tasks':1,'plan.goal':1
})
.populate('Task', 'task_description ')
.exec(function(err, doc){
if(err){callback(err, null);}
else {
callback(null, doc);
}
})
但我得到的仍然是任务ObjectI的阵列D,而不是任务文档的数组。 有什么我在猫鼬填充方法做错了?
我只是尝试这种解决方案,它挥舞,我得到空的结果 – user824624
.populate('plan.tasks ','task_description'),我有空阵列。而填充('任务','task_description')仍然返回一个ObjectID – user824624
的数组,我的猫鼬版本是3.6.11 – user824624