Как написать этот запрос с ActiveRecord или Mongoid? - PullRequest
2 голосов
/ 13 января 2012

Оба интерфейса для Mongoid и ActiveRecord достаточно похожи, так что я думаю, что либо будет работать.Мне нужен запрос, чтобы соответствовать следующим критериям:

Мне нужно знать количество дней, в течение которых определенный тип зерновых был съеден за последние 10 дней.Зерновые могут быть съедены 10 раз за один день, но мне нужно только знать, что в этот день было по крайней мере 1 раз, когда зерновые были съедены.Итак, если сегодня 11-е число, а пользователь съел Fruity Pebbles 2 раза 5-го, 10-го раза 7-го и один раз 8-го, ответ по-прежнему 3 *.что с ActiveRecord или Mongoid?Предположим, что базовый класс - «Cereal», и есть поле с именем «type»

Ответы [ 2 ]

0 голосов
/ 13 января 2012

Трудно ответить без надлежащего образца вашей модели.

Это может сработать, если ваша модель соответствует моим представлениям (аналогично ответу Катена):

Cereal.where("date > ?", Date.today - 10.days).select("distinct(date)").count

Вывозможно, придется немного его настроить, но это, по сути, то, что вам нужно сделать.

0 голосов
/ 13 января 2012

Не уверен, что понял.Cereal.where(:last_eaten.gt => Date.today - 10.day) или что-то подобное в монгоиде?Я иду с моей смелостью здесь, возможно, не совсем правильно

...