如何在mongoose填充嵌套的实体?

我有以下mongoose模式结构

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() 

但这并不是解决angular色实体的问题

您可以尝试链接填充操作

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

mongoose4:

 User .find() .populate({ path: 'roleIds', model: 'roles', populate: { path: 'otherIds', model: 'other' } })