【问题标题】:Conditions about the fields in mongoidmongoid 中的字段条件
【发布时间】:2017-11-23 06:15:29
【问题描述】:

我有一个拥有多个会话的用户类。 我想编写一个查询来计算每个用户在特定时间范围内拥有的会话数。

换句话说,我正在寻找一个看起来像这样的查询: User.where(:sessions.date => date1..date2)

解决这个问题的正确方法是什么?

【问题讨论】:

    标签: ruby-on-rails mongodb mongoid


    【解决方案1】:

    我个人使用简单的$gt$lt,因为它只允许查询其中一个,当然还有$in 运算符。

    # Session seems to be a separate collection
    sessions = Session.where(:date => {"$gt" => date1, "$lt" => date2})
    User.find(sessions.collect(&:user_id).uniq)
    

    除此之外,您的查询看起来是聚合管道的完美候选者,可以在 Session 查询中从数据库传输更少的数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多