Ruby on rails 使用Mongoid在一个查询中对结果进行分组并汇总字段?
我尝试使用Mongoid执行一个或多或少高级的查询,它基本上获取日期范围的指标,按天分组,然后汇总每天的值,它还应该告诉我每天有多少个条目 我非常怀疑Mongoid的活动记录部分可以做到这一点,但我不知道如何直接在mongo驱动程序上执行查询 我的模型: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 =>
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 }"
)
学分归上题的答案