MongoMapper查找EmbeddedDocument

问题描述:

我有点卡在MongoMapper中的EmbeddedDocuments的概念。我的模型是这样的:MongoMapper查找EmbeddedDocument

class Post 
    include MongoMapper::Document 

    many :categories 
    many :qualities 
end 

class Category 
    include MongoMapper::EmbeddedDocument 

    belongs_to :post 
    many :qualities 
end 

class Quality 
    include MongoMapper::EmbeddedDocument 
    key :category_id, ObjectId 

    belongs_to :post 
    belongs_to :category 
end 

我的问题是一种简单的:我显示一个帖子,并要列出它的类别和属于它(CATEGORY_ID)所有的素质。


post.categories.each do |cat| 
    puts cat 
    puts cat.qualities 
end 

之后它取决于如何将它保存到数据库中,因为每个EmbeddedDocument不需要belongs_to与他们的父级。每个文档中都有_parent_document和_root_document来查看belongs_to。

+0

其实我在每个类别中都有一个品质数组,但它是空的。质量不是嵌入在类别中,而是嵌入在后。 – pex 2010-03-10 13:25:33

+0

那么协会的品质如何与品类? – shingara 2010-03-10 13:33:43

+0

我认为同一父母的两个嵌入文档也可能具有belongs_to/many关系。我将质量保存在category_id中。 – pex 2010-03-10 16:41:44