2012-05-09 171 views
2

比方說,我需要知道我多少錢在我的整個生命贏得了: 什麼會我在SQL做的是這樣的:選擇總和()在MongoDB中

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

有一些簡單的在mongoDB中通過mongoid,rails來做到這一點? 甚至不認爲要使用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)