2016-03-06 211 views
0

我的输出是在下面的图片填充查询 - 猫鼬

enter image description here

和我填入查询

Post.findOne({_id:req.query.id}). 
    populate('user'). 
    populate('comment'). 
    exec(function(err,docs){ 
     if(err){ 
      console.log(err); 
     } 
      console.log(docs); 
     res.send(docs); 
    }); 
}); 

如何获得在评论阵列用户对象的数据?

+1

能不能请你,包括你的问题,而不是图像实际的代码,因为在图像的代码不能被复制并粘贴到编辑器中并进行编译以重现问题?在通常不推荐在SO上张贴代码图像的许多其他原因中,图像很大并且难以在一些移动设备上阅读,它们不能被搜索,因此对于将来的读者没有用 – chridam

+0

请张贴您的模式 - 查询看起来不错,所以问题必须在模式中。啊 - 我只是注意到了。您的查询正在工作,但您尚未找到填充Post.comment.comments.user字段的方法。请参阅下面的答案。 – Reto

回答

0

过去是不可能的猫鼬填充填充更深对象的字段中直接查询,但你总是可以通过你的resultdocs你的第一个回调内部Comment.populate(comments, options, cb)方法(http://mongoosejs.com/docs/api.html#model_Model.populate)使用人工种群。

对于较新版本的猫鼬,你应该能够做到这一点直接使用这个语法:

Post. 
    find(). 
    populate({ 
     path: 'comment', 
     populate: { 
      path: 'comments', 
      populate: 'user' 
     } 
    } 
}); 
+0

这个方法解决了你的问题还是没有奏效?我从来没有尝试过这种新的语法,但我对它是否有用感兴趣 – Reto