2
我是新的mongodb。Mongoid:渴望加载计数has_many association
我想列出一些文件,我的班级有一个has_many
关联,我想显示这个关联文件的数量。
我需要做一些急切的加载吗?
如果我使用includes
所有的文件都会被加载,我只想要计数。
标识映射启用
我是新的mongodb。Mongoid:渴望加载计数has_many association
我想列出一些文件,我的班级有一个has_many
关联,我想显示这个关联文件的数量。
我需要做一些急切的加载吗?
如果我使用includes
所有的文件都会被加载,我只想要计数。
标识映射启用
我不知道的方式,以避免预先加载从加载完整的文档。我很想知道现在是否有可能。
你可以得到数是这样的:
ChildDoc.where(myclass_id: myclass_obj.id).count
所以要查询在关联的隐式创建的外键字段。这仍然是每个父文档的查询,但理想的快速查询。
如果PERF对你是一个真正的关心,你可以写,将返回更多的数据,但在单次行程单查询 - 所包含的文档中所有的ID - 这样的:
ChildDoc.where(myclass_id: {"$in" => list_of_myclass_objs.map {|x| x.id}}).only(:id, :myclass_id)
既然你是新手,我会补充说你可能想自己在FK字段上创建索引--mongoid不会为你做这个。
class ChildDoc
include Mongoid::Document
belongs_to :myclass
index({ myclass_id: 1 })
end
然后
rake db:mongoid:create_indexes