mongoose中的populate函数有什么作用?

时间:2015-11-24 09:32:11

标签: node.js mongodb mongoose mean meanjs

当我阅读http://mongoosejs.com/docs/populate.html时,我不明白这个问题。我不完全理解populate函数的作用。我从meanjs示例源代码中选择了它:

Article.find().sort('-created').populate('user', 'displayName').exec(function (err, articles) {
if (err) {
  return res.status(400).send({
    message: errorHandler.getErrorMessage(err)
  });
} else {
  res.json(articles);
}});    

提前致谢。

1 个答案:

答案 0 :(得分:1)

Article文档中,您正在存储用户的userId。

现在,在查询Article文档时,如果要为每个文档获取用户,则可以使用填充。

现在,当您访问articles[index].user时,它将返回对象而不是ObjectId值(用户的_id属性)。

第二个参数定义应在User个对象中检索哪个字段。这是displayName。因此,它会检索_id的{​​{1}}和displayName。如果要排除_id,可以指定“-_id displayName”