仅当字段存在时,Mongoid查询

时间:2014-03-05 08:14:40

标签: ruby-on-rails mongoid

我有一份包含文件的新闻集,这些文件可能(或可能没有)的活动时间有限。

我有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完成吗?

1 个答案:

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