Rails 3:从几个文档中求和一个字段

时间:2011-11-04 19:57:24

标签: ruby-on-rails-3 mongodb mongoid

我有几百份文件来提供这些信息:

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

如何汇总所有文件的amount变量?

我正在使用Rails + Mongoid。

感谢

1 个答案:

答案 0 :(得分:0)

通常使用整数字段,您可以这样做:

User.sum(:amount)
# => 142.0

但是,由于您的amount字段是一个字符串,它只会连接字符串。例如,如果您有3个用户,其金额为12,30和100,那么您将得到“01230100”。在这种情况下,您可能需要使用类似Ruby的注入:

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