Ruby on rails 使用Mongoid在一个查询中对结果进行分组并汇总字段?

Ruby on rails 使用Mongoid在一个查询中对结果进行分组并汇总字段?,ruby-on-rails,mongodb,mongoid,Ruby On Rails,Mongodb,Mongoid,我尝试使用Mongoid执行一个或多或少高级的查询,它基本上获取日期范围的指标,按天分组,然后汇总每天的值,它还应该告诉我每天有多少个条目 我非常怀疑Mongoid的活动记录部分可以做到这一点,但我不知道如何直接在mongo驱动程序上执行查询 我的模型: class Metric include Mongoid::Document field :id_session, :type => Integer field :metric, :type =>

我尝试使用Mongoid执行一个或多或少高级的查询,它基本上获取日期范围的指标,按天分组,然后汇总每天的值,它还应该告诉我每天有多少个条目

我非常怀疑Mongoid的活动记录部分可以做到这一点,但我不知道如何直接在mongo驱动程序上执行查询

我的模型:

class Metric
  include Mongoid::Document

  field :id_session,    :type => Integer
  field :metric,        :type => Integer
  field :value,         :type => Integer
  field :date,          :type => Date
  field :time,          :type => Time

  validates_numericality_of :value
  validates_presence_of :id_session, :metric, :value

  before_create :set_date

  def set_date
    self.time   = Time.now
    self.date   = Date.now
  end

end
我已经能够通过使用Metric.distinct(:date)简单地获得按日期分组的结果,但是我不知道如何对这些结果进行求和和和计数,因为我不能对结果使用该方法

有什么想法吗?我更喜欢使用Mongoid活动记录方法,但如果有人知道我如何直接在MongoDB驱动程序上执行查询,这也会有所帮助


谢谢

设法让它工作起来

    result = Metric.collection.group(
  ['date'] , nil, {:count => 0, :value => 0}, "function(x, y) { y.count++; y.value += x.value }"
)
学分归上题的答案