Mongoid запрос по диапазонам дат - PullRequest
1 голос
/ 08 ноября 2011

Как я могу написать, где запрос по двум диапазонам дат? Единственное условие - эти данные должны быть получены одним запросом. Спасибо.

UPD: или как объединить 2 запроса в одну коллекцию? не массив

Ответы [ 2 ]

6 голосов
/ 08 ноября 2011

Вы можете легко or два диапазона:

Post.all.
     or(:created_at.gt => Time.now - 3.months, :created_at.lte => Time.now - 2.months).
     or(:created_at.gt => Time.now - 1.month, :created_at.lte => Time.now)
0 голосов
/ 29 августа 2016

Объединение может быть выполнено с использованием any_of критериев. критерии any_of аналогичны SQL OR и имеют псевдоним «or» для удобства чтения. Вот способ запроса двух временных диапазонов.

date1 = Date.new(2016,2,3)
date2 = Date.new(2016,2,4)
date3 = Date.new(2016,3,3)
date4 = Date.new(2016,3,4)
User.any_of({:created_at=>  date1..date2},{:created => date3..date4})
...