我有一份包含文件的新闻集,这些文件可能(或可能没有)的活动时间有限。
我有3个字段,表明新闻是否有效。 active,valid_from,valid_to。通常我会做这种查询:
其中active = true且(valid_from = null或valid_from< Time.now)和(valid_to = null或valid_to> Time.now)。好。 Time.now只是红宝石,但我希望你明白。
这可以用Mongoid完成吗?
答案 0 :(得分:1)
Model.where(active: true)
.any_of({valid_from: nil}, {:valid_from.lt => Time.now})
.any_of({valid_to: nil}, {:valid_to.gt => Time.now})