计算2级嵌套模型的有效方法是什么(一般使用mongoid或MongoDB)?

时间:2011-04-04 11:57:36

标签: ruby mongodb ruby-on-rails-3 mongoid database

我有以下数据模型。其中一个Project嵌入了许多ComponentDescriptor,而一个ComponentDescriptor嵌入了许多Statistic。

class Project
  include Mongoid::Document
  embeds_many :component_descriptors

  field :status, :type => Integer

  backgrounded :publish 
end

class ComponentDescriptor
  include Mongoid::Document
  include Mongoid::Acts::Tree

  embeds_many :statistics
  embedded_in :project, :inverse_of => :component_descriptors

end


class Statistic
  include Mongoid::Document
  field :statistics_type, :type => String
  field :data, :type => String
  field :playhead_time, :type => String
  field :remote_ip, :type => String
  field :user_agent, :type => String

  embedded_in :component_descriptor, :inverse_of => :statistics
end

问题是计算项目中Statistic对象总数的最佳方法是什么。

我能想到的一种方法是循环遍历每个ComponentDescriptor并计算Statistics对象的数量,然后对它们求和。但我认为这不是有效的方法。

提前感谢。

1 个答案:

答案 0 :(得分:0)

如果您可以在项目级别存储计数字段,这将是您获得它的最佳和最快的方式。