我试图了解Mongoose的填充功能,到目前为止,我对可用资源和docs感到困惑。
基本上,我有一个如下的架构安排,并且我试图在用ejs呈现的页面上显示所有引用给用户的帖子。
var UserSchema = new Schema ({
username: String,
password: String,
posts: [
{
type: mongoose.Schema.Types.ObjectId,
ref: "Post"
}
]
});
var PostSchema = new Schema ({
Title: String,
Content: String,
author: {
type: mongoose.Schema.Types.ObjectId,
ref: 'User',
}
});
我已经设置了护照/会议,因此我可以获取当前用户的ID。使用此ID,我想显示所有用户的帖子。我已经坚持了几个小时,并尝试了各种教程和不同的方法,请有人让我摆脱痛苦!我应该如何处理?
答案 0 :(得分:0)
尝试首先将用户与ids
列表(activeUserIds)匹配,然后在获取的记录中填充posts
和author
字段。
await User.find({'_id': {$in: [activeUserIds]}})
.populate({
path: 'posts',
model: 'Post',
populate: ({
path: 'author',
model: 'User'
})
});