2016-05-03 2 views
2

У меня есть следующие мангусты структура схемыКак заполнить вложенные объекты в мангусте?

userSchema = new Schema({ 
    roles: [ 
     role: {type: Schema.Types.ObjectId, ref: 'Role' } 
    ] 
}) 

rolesSchema = new Schema({ 
    name: String, 
    roleEntities: [ 
    { 
     entity : {type: Schema.Types.ObjectId, ref: 'RoleEntity' }, 
     abilities : [{type: Schema.Types.ObjectId, ref: 'Ability' }] 
    } 
    ] 
} 

roleEntitiesSchema = new Schema({ 
    name: String 
}) 

abilitiesSchema = new Schema({ 
    name: String 
}) 

Как я могу заполнить все эти вложенные документы при этом находки на модели USER?

Я попытался с помощью заполнения, как показано ниже

User.find(ctx.request.query).populate(
     {path: 'roles.role' 
     ,populate: { path: 'roleEntities.entity'} 
    }). 
    exec() 

, но это не решения roleEntities.entity

ответ

4

Вы можете попытаться заполнить цепочки операций

User.find() 
.populate("roles.role") 
.populate("roles.role.roleEntities.entity") 
2

Mongoose 4:

User 
    .find() 
    .populate({ 
    path: 'roleIds', 
    model: 'roles', 
    populate: { 
     path: 'otherIds', 
     model: 'other' 
    } 
    }) 
Смежные вопросы