Сложный запрос с MongoID в рельсах - PullRequest
0 голосов
/ 17 ноября 2011

Моя проблема заключается в следующем:

У меня есть модель Member с атрибутами last_visited_at и notified_at.

Я хочу выбрать объекты, соответствующие этим условиям:

(date_one <<code>last_visited_at И (notified_at ИЛИ date_two <<code>notified_at)

Что также можно записать как:

date_one <<code>last_visited_at И last_visited_at И (notified_at ИЛИ date_two <<code>notified_at)


Вот что я пытался, но это не сработало:

Я убедился, что один объект соответствует этим условиям.

(MongoID, с использованием консоли Rails)

Member.where(:last_visited_at => {"$lte" => date_one, "$gte" => date_two})
      .any_of(
              :notified_for_not_signing_in_at => {"$gte" => date_one},
              :notified_for_not_signing_in_at => {"$lte" => date_two})
      .first

возвращает и ошибка

У кого-нибудь есть идеи, как решить эту проблему?

Спасибо за вашу помощь и за ваше время,

1 Ответ

0 голосов
/ 17 ноября 2011

any_of должно быть написано так (в виде хэшей)

   .any_of( {:notified_for_not_signing_in_at => {"$gte" => date_one}},
            {:notified_for_not_signing_in_at => {"$lte" => date_two}})

не

any_of(
              :notified_for_not_signing_in_at => {"$gte" => date_one},
              :notified_for_not_signing_in_at => {"$lte" => date_two})
...