比如有一个时间段,用 c_start 和 c_end 表示开始和结束时间,然后每条数据也有一个开始和结束时间,我现在想查找: 开始时间在 c_start 和 c_end 之间 or 结束时间在 c_start 和 c_end 之间 目前我的写法如下,可以工作了,但是感觉不够简洁,想知道有没有更简洁的写法?
def self.in_callendar(c_start, c_end)
any_of({ "$and" => [{ "start" => { "$gte" => c_start }}, { "start" => { "$lte" => c_end } }] }, { "$and" => [{ "end" => { "$gte" => c_start }}, { "end" => { "$lte" => c_end } }] })
end