2017-06-20 1 views
1

私はhas_manyセッションのユーザークラスを持っています。 各ユーザーのセッション数をカウントするクエリを作成する場合は、の特定の時間範囲にを入力してください。言い換えればmongoidのフィールドに関する条件

、私はそのような何かに見えるクエリのルックスだ: User.where(:sessions.date => date1..date2)を

これにアプローチする正しい方法は何ですか?

答えて

1

個人的に私は単純に$gt$ltを使用していますが、そのうちの1つだけを照会することができますが、もちろん$in演算子もあります。

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

はさておき、これは、あなたのクエリがSessionクエリでDBから以下のデータを転送するために集約パイプラインのための完璧な候補者を探します。

関連する問題