Rails 3: суммирование поля из нескольких документов - PullRequest
0 голосов
/ 04 ноября 2011

У меня есть несколько сотен документов с этой информацией:

=> User(id: integer, email: string, amount: string)

Как мне суммировать переменную amount всех документов?

Я использую Rails + Mongoid.

спасибо

1 Ответ

0 голосов
/ 05 ноября 2011

Обычно с целочисленным полем вы можете сделать это:

User.sum(:amount)
# => 142.0

Однако, поскольку ваше поле количества является строкой, оно просто объединит строки. Например, если бы у вас было 3 пользователя с суммами 12, 30 и 100, в результате вы получите «01230100». В этом случае вам может понадобиться использовать что-то вроде Ruby's Inject:

User.all.inject(0) { |sum, user| sum + user.amount.to_f }
# => 142.0
...