我正在尝试动态填充猫鼬中的对象数组。在我的用户模型上,我想要一个包含用户发布的所有帖子的数组。问题是我有多种类型的帖子。
不同的帖子模型:
const ImagePost = mongoose.model('ImagePost', new Schema({ url: String }))
const TextPost = mongoose.model('TextPost', new Schema({ text: String }))
我的用户模型如下:
const userSchema = new Schema({
userName: {
type: String,
required: true
},
posts: [{
postId: {
type: Schema.Types.ObjectId,
required: true,
refPath: "postModel"
},
postModel: {
type: String,
required: true,
enum: ['ImagePost', 'TextPost']
}
}]
})
const User = mongoose.model('User', userSchema)
如何从数据库中获取用户并自动填充用户发表的帖子?
我认为它应该起作用的乳清是这样,但是由于某种原因它什么也没做:
User.findById('5d302c7caf1b8906ccb611b6').populate('posts.postId')
答案 0 :(得分:1)
将refPath
从postModel
更改为posts.postModel
可能会解决您的问题。