日期之间的Rails mongo查询

时间:2018-10-01 05:41:47

标签: ruby-on-rails mongodb

我的帖子记录的日期为created_at,日期可能为schedule。 创建帖子后,可以安排该帖子或将其另存为草稿。

我想在日历上显示两个日期之间计划或起草的所有帖子。

drafts = posts.where(schedule: nil).where(:created_at => post_start.to_date..post_end.to_date)
scheduled = posts.where(:schedule => post_start.to_date..post_end.to_date)
@posts = drafts + scheduled

这将起作用。但是必须有一种方法可以更有效地将它们组合成一个查询。怎么样?

1 个答案:

答案 0 :(得分:0)

您可以尝试使用or组合这些查询。

posts.or(
    Post.where(schedule: nil).where(:created_at => post_start.to_date..post_end.to_date).selector,
    Post.where(:schedule.ne => nil).where(:schedule => post_start.to_date..post_end.to_date).selector
)