如何在Mongoid中获得has_many belongs_to关系的总和?

时间:2014-09-10 09:12:13

标签: ruby-on-rails mongodb mongoid

我有两个模特。

user.rb
-----
has_many :followers

follower.rb
-----
belongs_to :user

field following_id :user_id, type: String

我试图找到拥有最多粉丝的前10位用户。

理想情况下会是这样的:

User.all.order_by(:followers_count)或类似的东西。

任何人都对如何生成该查询有任何见解?

1 个答案:

答案 0 :(得分:0)

与引用模型有关的逻辑问题是查询当前用户的following_id的“关注者”:

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

请记住,尽管ODM提供了帮助以进行模拟,但所有MongoDB查询和操作一次只能在一个集合上执行。服务器上没有实际的“JOIN”,因此您可以最有效地处理查询模式。