mongoose联合查询populate如何使用?
使用node练习博客项目的时候,文章需要关联用户和分类,评论集合,所以就用到了mongoose的populate查询,可是无法返回想要的数据,代码如下:
保存文章的:
// 拿到session中的用户信息
let authorObj = {author: ObjectId(req.session.userInfo.userID)};
let cateObj = {category: ObjectId(req.body.category)};
// 增加到数据中
postData = Object.assign(req.body,authorObj,cateObj);
// 添加新数据
postModel.create(postData)
.then((result)=>{
if(!result){
reMessage.msg='文章保存错误';
reMessage.code=2003;
res.send(reMessage);
return;
}
reMessage.msg='文章发表成功';
reMessage.code=0;
res.send(reMessage);
});
返回数据的:
postModel.find({})
.populate({path:'users',select:'username'})
.then((data)=>{
console.log(data);
res.render('admin/posts-list',{
login:req.session.login,
userInfo:req.session.userInfo,
fields:['标题','作者','分类','发表时间'],
datas:data
});
});
具体代码就如上,为什么不行呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
已解决,是创建Schema的字段ref引用错误,应该引用userModel = db.model('user',suerSchema)的第一个参数,而不是userModel