【问题标题】:Rails mongo query between dates日期之间的Rails mongo查询
【发布时间】:2019-03-06 05:05:09
【问题描述】:

我的帖子记录具有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

这会奏效。但是必须有一种方法以更有效的方式将这些组合到一个查询中。怎么样?

【问题讨论】:

  • :schedule.ne => nil 不是有效的 Ruby 代码。
  • @AndreyDeineko - 我总是对 mongoid 而不是 nil 感到困惑。在上面找不到任何文档。无论如何,由于我正在寻找日程安排的日期范围,我们可以排除不为零的可能性。相应地修改了我的问题。

标签: ruby-on-rails mongodb


【解决方案1】:

您可以尝试使用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
)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多