在mongodb中选择sum()

时间:2012-05-09 13:30:33

标签: mongodb mongoid

让我说我需要知道我一生中赚了多少钱: 我在SQL中做的是这样的:

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

有没有一些简单的方法可以通过mongoid,rails在mongoDB中执行此操作? 甚至不要考虑建议我使用map / reduce。

我发现最简单的方法是:

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

但它看起来很可怕......

1 个答案:

答案 0 :(得分:13)

试试这个:

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