2016-11-07 4 views
2

Извините, если это уже было задано, мои поиски не изменились в той же ситуации. У меня есть две схемы что-то вроде ниже:Масштабный набор подгрузок Mongoose

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' 
    } 
}) 

Я хочу, чтобы выполнить глубокое население, так что когда я прошу эксперимент я получить объект с массивом elements и resources и для каждого из элементов поля 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(...) 
Смежные вопросы