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
轉移缺乏數據。