Meteor模板订阅和性能

时间:2015-05-04 17:29:37

标签: mongodb meteor meteor-blaze

我正在寻找关于我的方法的建议 - 我想确保我以“流星方式”做事并保持代码快速。

现状:

我们有一个问题集。每个问题都有一个嵌套的Answers集合。通过REST API,设备可以中继用户选择的答案。

根据所选答案,我们会显示每个问题的图表 - 简单数字细分和百分比条。为了提高性能,我们一直在跟踪每个答案在答案本身上收到的答复数量。

该出版物(基本上)看起来像这样:

Meteor.publish('questionsBySiteID', function(site_id){
  return Questions.find({site_id: site_id});
});

这样的路线:

Router.route('/sites/:_id/questions', {
  name: 'questionsList',
  waitOn: function(){
    return [
      Meteor.subscribe('questionsBySiteID', this.params._id),
    ];
  },
  data: function(){
    return {
      publishedQuestions: Questions.find(
        { site_id   : this.params._id, active: true, deleted: {$ne: true} },
        { sort      : { order: 1} }
      ),
      archivedQuestions :  Questions.find(
        { site_id    : this.params._id, active: false, deleted: {$ne: true} },
        { sort      : { updated_at: -1 } }
      ),
      deletedQuestions  :   Questions.find(
        { site_id    : this.params._id, deleted: true },
        { sort      : { updated_at: -1 } }
      )
    };
  }
});

需要更改:

现在我们希望回复可以过滤日期。这意味着我们在Answers上跟踪的非规范化响应计数不是很有用。我们一直在跟踪另一个集合(响应),其中包含更多“原始”版本的数据。 Response对象跟踪模块(在这种情况下为questions),question_id,answer_id,timestamp,问题所属客户的id等。

问题:

这是模板订阅有用的东西吗?也许我们需要一个接受过滤器的question_id和可选的开始/结束日期的出版物。每个问题的统计模板将在Template.question.create()中订阅适用的响应数据。根据question_id,出版物需要在日期过滤器中找到相关答案的回复。也许我们使用the publish-counts package来计算每个答案的选择次数并公布这些计数。

Responses集合会非常大,所以我试着要小心我在这里发布的内容。我不希望waitOn所有回复都要发布。

0 个答案:

没有答案