2016-11-07 126 views
2

道歉,如果这已被问及,我的搜索没有出现相同的情况。我有两个架构喜欢的东西下面:猫鼬填充子文档数组

var experimentSchema = new mongoose.Schema({ 

    name : 'string' 
    elements : [{ 
     type : mongoose.Schema.ObjectId, 
     ref: 'Element' 
    }], 
    resources : [{ 
     type : mongoose.Schema.ObjectId, 
     ref : 'Resource' 
    }], 

}) 


var elementSchema = new mongoose.Schema({ 
    name : 'string', 
    component : { 
     type : mongoose.Schema.ObjectId, 
     ref : 'Component' 
    } 
}) 

我想,这样当我要求一个实验,我得到一个物体的elementsresources一个数组,每个元素领域component的进行了深刻的人口也已经人口稠密。

我已经试过沿线的几件事情:

Experiment.findOne(query).populate(['resources','elements','elements.component']).exec(...) 

没有成功。任何人都可以为这种类型的操作提供正确的语法吗?

在此先感谢!

回答

1

希望这有助于。

models.User.findOne(query) 
     .populate([{ 
     path: 'elements', 
     populate: { 
      path: 'components', 
      model: 'Component' 
      } 
     },{ 
     path:'resources' 
     }]) 
     .exec(...)