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