joz*_*zzy 5 mongoose mongodb node.js mongoose-populate
我有以下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
})
Run Code Online (Sandbox Code Playgroud)
如何在USER模型上执行查找时填充所有这些嵌套文档?
我尝试使用populate如下
User.find(ctx.request.query).populate(
{path: 'roles.role'
,populate: { path: 'roleEntities.entity'}
}).
exec()
Run Code Online (Sandbox Code Playgroud)
但它并没有解决roleEntities.entity
K. *_*ite 14
这是嵌套在多个对象/数组中的深层填充的极端示例:
Deal.find()
.populate({
path: 'fund',
populate: [{
path: 'organizer',
populate: {
path: 'banking.accounts.transactions.associatedInvestment',
model: 'Investment'
}
}, {
path: 'documents'
}]
})
Run Code Online (Sandbox Code Playgroud)
aec*_*aec 11
您可以尝试链接填充操作
User.find()
.populate("roles.role")
.populate("roles.role.roleEntities.entity")
Run Code Online (Sandbox Code Playgroud)
Ray*_*jax 10
猫鼬 4 :
User
.find()
.populate({
path: 'roleIds',
model: 'roles',
populate: {
path: 'otherIds',
model: 'other'
}
})
Run Code Online (Sandbox Code Playgroud)
对我来说做了以下工作
.populate({
path: 'favorites.favorite',
model: 'Joke',
populate: {
path: 'user',
model: 'User',
},
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5475 次 |
| 最近记录: |