【发布时间】:2018-12-12 19:44:42
【问题描述】:
我已经:
-
User模型(来自UserSchema) -
Specialty模型(来自SpecialtySchema) -
Session模型(来自SessionSchema)
用户有参考字段specialities:
specialities: [{ type: Schema.Types.ObjectId, ref: 'Specialty' }]
会话有引用字段provider:
provider: { type: Schema.Types.ObjectId, ref: 'Session' }
我想获取具有填充provider(用户)和深度填充specialities 的会话列表,而不是provider。
我正在做以下事情:
Session
.find()
.populate({
path: 'provider',
model: 'User',
populate: {
path: 'specialities',
model: 'Specialty',
}
})
但是结果总是返回一个 IDS 数组(当我尝试通过 provider.specialities 而不是填充版本访问它们时。
专业是关键字吗?
我不知道为什么它就像根本没有填充。
【问题讨论】:
-
请粘贴您的架构
-
深度人口在哪里?只需
mongoose.model('User').findById(id here).populate('specialities')...等等... -
我认为 mongoose 版本 4 的病房可以像这样深入填充? .populate({ path: 'provider', model: 'User', populate: { path: 'specialities', model: 'Specialty', } })
-
@num8er 适用于正常人群,但是当我尝试深入填充 Session 模型的提供者的专业时它不起作用
-
@DarkArtistry 你可以在你
try to deep populate a Session model's provider's specialities的地方添加你的代码吗?
标签: node.js mongoose mongoose-schema mongoose-populate