2012-05-09 6 views
2

中の私は、私は全体私の生活の中で獲得したどのくらいのお金を知っておく必要があるとしましょう: 私はSQLで何をするだろうが、このようなものです:選択合計()MongoDBの

select sum(salary) from employee_salary where employee_id=1000; 

いくつかの簡単ながありますモンゴイでmongoid、railを使ってこれを行う方法? map/reduceを使って私を提案するとは思わないでください。

私が見つけた最も簡単な方法は次のとおりです。

db.employee_salary.group(
    { 
     cond: { "employee_id":1000 }, 
     reduce: function(obj,prev) { prev.sum += obj.salary; }, 
     initial: { sum: 0 } 
    } 
)[0].sum; 

しかし、それはとてもひどい見えます...

答えて

12

は、この方法を試してください。

Employee.where(id: 1000).sum(:salary)