javascript - mongoose联合查询populate怎么用的?
问题描述
// 创建一个人物数据结构let personSchema = mongoose.Schema({_id:Number,name:String,post:[{ type:Number, ref:’postModel’}]});console.log(mongoose.Schema.ObjectId);// 根据结构生成人物模型let personModel = mongoose.model(’person’,personSchema);let ObjectId = mongoose.Types.ObjectId;// 创建一个文章数据结构let postSchema = mongoose.Schema({_id:Number,title:String,author:{ type:Number, ref:’personModel’},content:String});// 创建文章模型let postModel = mongoose.model(’post’,postSchema);开始查询
postModel.find({}) .populate(’people’) .exec((err,data)=>{console.log(data) });
这是什么原因呢?换过用ObjectId查询,也是一样的结果,mongoose版本4.10.6,node版本8.1.0
问题解答
回答1:post:[{ type:Schema.ObjectId, ref:’postModel’}]
另外要注意ref的字段要和你注册的model的名称一致, 否则populate操作不会成功参考这个https://github.com/YueminHu/l...建议去学习下MDN的图书馆例子
相关文章:
1. mysql - 为什么innodb下更新A行时B行也被锁住?2. python - 如何给模块传参数,参数是模块的函数名?3. mysql - spring data jpa 方法sql复杂查询?4. 微信小程序如何将获取的时间戳提交到数据库?5. 请问python中为什么我用for循环对嵌套列表进行赋值时,都是以i的最终值来计算的?6. python - Scrapy中xpath用到中文报错7. node.js - 微信的自动回复问题8. javascript - 我写的href跳转地址不是百度,为什么在有的机型上跳转到百度了,有的机型跳转正确9. python - pandas按照列A和列B分组,将列C求平均数,怎样才能生成一个列A,B,C的dataframe10. node.js - nodejs中mysql子查询返回多行结果怎么处理?