1
我有一个用户类has_many会话。 我想编写一个查询,计算每个用户拥有的会话数量,在特定时间范围。有关mongoid中的字段的条件
换句话说,我会寻找一个查询,看起来就像这样: User.where(:sessions.date => date1..date2)
什么是处理这个正确的方式?
我有一个用户类has_many会话。 我想编写一个查询,计算每个用户拥有的会话数量,在特定时间范围。有关mongoid中的字段的条件
换句话说,我会寻找一个查询,看起来就像这样: User.where(:sessions.date => date1..date2)
什么是处理这个正确的方式?
就我个人而言,我使用简单的$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
转移缺乏数据。