假设我有Posts
和Comments
个集合。 Comment
记录包含属性comment
和postId
。 Post
条记录具有title
属性。
现在我有一个单独的页面用于单个评论(非常不可能的irl,但仅仅是为了它)我想要显示评论当然还有Post
标题。我如何做到这一点,或者更一般地说:你如何引用一个"父母" (引用之间的父,因为Mongo不是参考数据库)?
我经常看到的一个选项是非规范化,并将Post
标题作为属性添加到Comment
记录中。虽然我确实看到了非规范化的用例,但我担心维护的噩梦。当Post
标题更新时,您还需要在将其用作非规范化属性的所有其他集合中更新它们。
因此,我的解决方案是订阅Post
页面上的Comment
。然后在commentDetails.html
我有这个:
{{post_title}}
在commentDetails.js
我会有这个:
Template.commentDetails.helpers({
post_title: function() {
return Posts.findOne({_id: this.postId}).title;
}
});
这是这样做的吗?
编辑:澄清了问题并更新了示例。
答案 0 :(得分:0)
在将Reddit指向detailed article about this subject之后,我现在已经实施了“天真的方法”。我正在研究选项4,以使其真正反应。