2017-04-10 28 views
0

我有一個問題,我不知道從哪裏開始。我有一個按鈕可以計算集合中所有匹配文檔的總金額。即:某些月份,年份和分支計算。到目前爲止,當我第一次點擊時,它會給我「y」金額,第二次會返回「x」金額。流星js mongodb SUM收集文件不完整

我認爲收集文件第一次是不完整的。

我該如何解決這個問題?請原諒,如果這已經回答了,我已經環顧四周失敗了。

當單擊按鈕,在模板事件執行:

'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); 
} 

回答

0

由於您使用的火焰,你可能會考慮這個計算的助手,而不是一個事件處理程序。這樣(a)用戶不需要點擊以獲得總和,(b)即使數據反應性地變化,總數也總是最新的。

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