Meteor js mongodb SUM收集文件不完整

时间:2017-04-10 20:08:37

标签: mongodb meteor meteor-blaze

我有一个问题,我不知道从哪里开始。我有一个按钮,可以计算集合中所有匹配文档的总金额。即:某些月份,年份和分支计算。到目前为止,当我第一次点击它时,它给了我" y"金额,第二次返回" x"量。

我认为第一次收集文件不完整。

我怎么解决这个问题?请原谅,如果已经回答了这个问题,我已经环顾四周了。

单击按钮时,在模板事件中执行:

'click #calculate': function(event,instance){
   var _transactions = instance.Transactions().fetch();
   var capital = _transactions.reduce(function(sum, row){
      return row.is_accountable ? sum + row.transaction_amount : sum + 0;
   }, 0);
   instance.capital.set(capital);
}

1 个答案:

答案 0 :(得分:0)

由于您正在使用Blaze,因此您可能会考虑将此计算作为帮助而不是事件处理程序。这样(a)用户无需点击即可获得总和,(b)即使数据发生反应性变化,总数也始终是最新的。

Template.myTemplate.helper({
  sum(){
    s = 0;
    Transactions.find().map((doc)={
      s += doc.is_accountable ? doc.transaction_amount : 0;
    });
    return s;
  }
});