2011-11-08 25 views
1

どのように2つの日付範囲でクエリを書くことができますか?唯一の条件は、このデータを1つのクエリで取得する必要があることです。ありがとうございました。日付範囲別のモンゴイドクエリ

UPD:または1つのコレクションで2つのクエリを結合する方法は?ない配列

答えて

5

することはでき簡単に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

連合は any_of基準を使用して行うことができます。 any_of基準はSQL ORに似ており、可読性のために「or」とエイリアスされています。ここでは2つの時間範囲を照会する方法が示されています。

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})