有没有一种方法可以从ruby mongoid查询返回一个has_many计算字段值?

有没有一种方法可以从ruby mongoid查询返回一个has_many计算字段值?,ruby,mongoid,Ruby,Mongoid,我的目标是避免多个数据库查询,并一次完成所有查询 我有一个名为“赞助商”的文档对象模型,它有很多玩家 class Sponsor include Mongoid::Document has_many :players field :name, type: String # . . . end class Player include Mongoid::Document belongs_to :sponsor, inverse_of: :players field

我的目标是避免多个数据库查询,并一次完成所有查询

我有一个名为“赞助商”的文档对象模型,它有很多玩家

class Sponsor
  include Mongoid::Document
  has_many :players
  field :name, type: String

  # . . .
end

class Player
  include Mongoid::Document
  belongs_to :sponsor, inverse_of: :players
  field :name, type: String
end
我想获得我的
赞助商拥有的
玩家的数量,但我想通过调用
赞助商

class Sponsor
 # . . .

  def self.return_all_with_player_count
    # do something to get object with injected player count
  end

end

# Sponsor.return_all_with_player_count => [{name: 'Someone 1', player_count: 2}, {name: 'Someone 2', player_count: 12}]
##编辑


这是
scope
将以某种方式使用的地方吗?

尝试此实现,它将返回方法
返回所有带有玩家计数的值

  def self.return_all_with_player_count
    all.map do |sponsor|
      { name: sponsor.name, player_count: sponsor.players.count }
    end
  end
scope
就像一个过滤器,在这种情况下不适用