mongoose的populate实现多级关联查询

 超哥  mongoose  2016-08-09  3284  发表评论

使用mongoose中有多级关联情景,如

收藏 Collect中有图片的ID关联图片Picture结合: {pictureId : {type: Schema.ObjectId, ref: 'Picture'}}

图片Picture中有用户ID管理: {userId : {type: Schema.ObjectId, ref: 'User'}}

用户User: {name : {type: String}}

现在想获取收藏列表的时候显示图片的用户的名称,就是User.name
3.8版本的mongoose的populate只能通过Collect获取到Picture,而不能获取到Picture的User

业绩是说只能获取的userId的值(用户的ID,而不是对象)
4.5版本的mongoose支持deep-populate,也就是深度关联获取
可以嵌套populate获取关联对象的子关联对象

var query = CollectModel.find({});
query.populate({

path:'pictureId',

populate:{path:'userId'}                   //嵌套populate

});
query.exec(function (err, docs) {
console.log(docs);
});

官方文档:deep-populate


所有评论
加载评论 ...
发表评论