我正在尝试使用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驱动程序上执行查询,那也会有所帮助。
谢谢!
答案 0 :(得分:0)
管理以使其正常工作
result = Metric.collection.group(
['date'] , nil, {:count => 0, :value => 0}, "function(x, y) { y.count++; y.value += x.value }"
)
致谢会在this page
上找到答案