使用“父”的属性

时间:2015-01-09 09:41:30

标签: meteor

假设我有PostsComments个集合。 Comment记录包含属性commentpostIdPost条记录具有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;
  }
});

这是这样做的吗?

编辑:澄清了问题并更新了示例。

1 个答案:

答案 0 :(得分:0)

在将Reddit指向detailed article about this subject之后,我现在已经实施了“天真的方法”。我正在研究选项4,以使其真正反应。