猫鼬 - 当时

时间:2017-12-19 07:23:33

标签: mongoose mean-stack mongoose-populate

我想用作者姓名填充帖子。我创建了带引用的模型,路由也是如此。我应该何时填充帖子,在保存新帖子之前或之后,它实际上是如何工作的?

1 个答案:

答案 0 :(得分:0)

查询将一个文档中存储的id替换为另一个集合中的相应文档时使用填充。

您需要在帖子文档中保存作者文档的 _id

var post = new Post({
  ...
  author: // id of author doc
  ...
})

post.save()

然后在检索文档时使用填充,以便用作者文档本身替换存储的作者ID:

Post
  .find({})
  .populate('author')
  .exec(function (err, posts) {
    if (err) {
      // Handle error
    }

    // Handle results
    posts.forEach(post => {
      // Assuming author documents have a 'name' property
      console.log(post.author.name)
    })
  })

这也可能有所帮助: http://mongoosejs.com/docs/populate.html