Ruby プロジェクトに取り組んでおり、mongodb を使用しています。番組を開始時間と終了時間とともにデータベースに保存しています。現在のショー(現在の時間による)とそれに続くショーの結果を取得しようとしています。これが私のコードです:
def get_current_and_next_schedule(channel, time = Time.now)
end_of_day = _get_end_of_day(time)
Schedule.all(
:start_time => { '$gte' => time.utc },
:end_time => { '$lte' => end_of_day.utc },
:show_id => { '$in' => Show.all(:channel_id => channel.id).collect { |s| s.id } },
:order => :start_time,
:limit => 2
)
end
時間 3:00-4:00 と 4:00-5:00 の 2 つの番組がある場合、3:30 にデータベースにクエリを実行すると、返される結果に含まれているはずです。しかし、上記のコードを使用すると、4:00-5:00 の番組のみが結果に含まれます。これは、'$gte' => time.utc を確認しているためです。開始時刻が過ぎてもショーが終了していない場合に現在のショーが含まれるようにするには、このクエリをどのように修正すればよいですか?