2014-09-10 3 views
0

두 모델이 있습니다.Mongoid에서 has_many belongs_to 관계의 합을 얻는 방법?

user.rb 
----- 
has_many :followers 

follower.rb 
----- 
belongs_to :user 

field following_id :user_id, type: String 

나는 추종자가 가장 많은 상위 10 명의 사용자를 찾고 있습니다. 그런

User.all.order_by(:followers_count) 또는 무언가 :

이상적으로는 뭔가를 할 것이다.

누구든지 해당 검색어를 생성하는 방법에 대해 통찰력을 갖고 있습니까?

답변

0

참조 된 모델과는 논리적 것은 당신이 찾고있는 현재 사용자의 following_id에 대해 "추종자"를 조회 할 수 있습니다 :

Follower.where(following_id: user_id).count() 

도움에도 불구하고에 ODM으로 주어지는 것을 기억하십시오 그렇지 않으면 모든 MongoDB 쿼리와 연산은 한 번에 하나의 콜렉션에서만 수행됩니다. 서버에서 실제로 "조인"이 수행되지 않으므로 이러한 방식으로 쿼리 패턴을 가장 효율적으로 처리 할 수 ​​있습니다.