Я пытаюсь выполнить более или менее сложный запрос с 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, это тоже поможет.
Спасибо!