2012-05-09 113 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)