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