2012-05-11 54 views
1

我有:我如何按照created_at的順序列出所有評論?

class Article 
    include Mongoid::Document 

    embeds_many :comments 
end 

class Comment 
    include Mongoid::Document 

    embedded_in :article 
end 

由於CommentArticle嵌入文檔。我如何列舉全部按照created_at的次序?

我是否應該將其結構化爲使Comment不是嵌入在Article中或者是否有上述架構的方式?

回答

1

如果您嘗試從其文章的上下文中查詢評論,則明確評論應該是頂級實體,而不是嵌入評論。

在嵌入式的情況下,您可以使用map-reduce或聚合框架。普通的查詢語言在這裏不會幫助你。

+0

嗯,但在這種情況下,評論不應該是一個頂級的實體。自文章是。如果map-reduce是唯一的方法。你可以用一個簡單的例子來描述我上面描述的模式 –

+0

如果你正在查詢自己的評論,它是一個頂級實體。可能有多個頂級實體。不要與某些層次結構中的根節點混淆。 –

+0

爲了拉動所有評論和create_at的操作,您建議可以將Article-> Comment(評論嵌入到文章中)和Comment-> Article(Article嵌入到Comment中)有點多餘.. –

0

爲什麼不只是default_scope :order => 'created_at DESC'? (或ASC)。

無論如何,你會希望他們在整個網站上保持一致的順序。

相關問題