我想从3个集合和
的模式中获取数据帖子:
var PostsSchema = new mongoose.Schema({
user_id: String,
categories_id: Object,
text: String,
date: String,
updated_at: { type: Date, default: Date.now },
comments:[{ type: Schema.Types.ObjectId, ref: 'comments' }]
});
评论架构
var CommentsSchema = new mongoose.Schema({
comment_id: String,
post_id: String,
user_id: String,
comment_text: String,
updated_at: { type: Date, default: Date.now },
});
用户架构
var UserSchema = new mongoose.Schema({
user_id:String,
user_name: String,
first_name: String,
last_name: String,
email: String,
role_type: String,
profile_image: String,
created_at: { type: Date, default: Date.now },
});
我想要与帖子相关的所有帖子,评论。还有与评论相关的用户详细信息。
PostsController.GetListData = function(req, res) {
posts.find().populate('comments').exec(function (err, Post) {
if (err) {
console.log(err)
}
res.write(JSON.stringify(post),null,4);
res.end();
});
};
使用此功能,我可以获取帖子和评论数据。 如何获取与评论相关的用户详细信息?
答案 0 :(得分:0)
如果在您的userSchema中,您有
mongoose.model(userSchema, 'user')
然后你可以这样做
posts.find().populte({ path: 'comments', populate: { 'user' } })
在commentSchema和postSchema中,您应该将user_id更改为
user: { type: Schema.Types.ObjectId, ref: 'user' }
如果你卡住了,让我们阅读这份文件http://mongoosejs.com/docs/populate.html。你可以看看我的GitHub。我做的与你在这里做的相似https://github.com/dnp1204/play-with-mongodb。你去了我进行查询的测试目录。希望它有所帮助