2012-05-09 2 views
2

Допустим, мне нужно знать, сколько денег я заработал за всю свою жизнь: Что бы я сделал в SQL-то вроде этого:выберите сумму() в MongoDB

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

Есть некоторые простые способ сделать это в mongoDB через mongoid, рельсы? Даже не думайте предлагать мне использовать карту/уменьшить.

Самый простой способ я нашел:

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) 
Смежные вопросы