基本上我有一個職位列表,我想知道如果我需要一個單獨的收集鏈接到這些職位。 當然,我想顯示在我的縮略名單(並在鼠標懸停的內容),但查詢後的名稱和內容將加載 所有評論太對了? (因爲它們是嵌入的,評論數組預計會比帖子的內容大得多)這裏數據重複是不可避免的?
有沒有什麼辦法可以避免獲得另一個集合,但同時避免每次我想要加載評論 知道一個職位的名稱/描述?
> db.Posts.find()
{
"_id" : "123",
"Name": "test",
"Content": "wooops",
"comments" : [ {comment1}, {comment2}, {comment3} ]
}
當然,我知道我可以爲註釋創建另一個集合。但據我所知,在生產使用中是不可能的,因爲我希望每天都有很多帖子,這意味着每個新帖子都會創建一個新的評論集。這是建議嗎?據official docs說,最大收集數量是12000.儘管它說數量可以增加,但我強烈地認爲這不是一個好主意。 編輯:我計算出它的絕對最大值是150萬集合/ =職位。當然這還不夠。
在這個問題上的任何經驗,將不勝感激:)
我真的不明白爲什麼你沒有爲所有名爲「評論」的評論收集「1」集合。 (並在其中放置一個post_id,這樣你就可以得到帖子的評論 – frail 2011-04-27 12:41:37
@frail:你的意思是把所有帖子的所有評論放到同一個集合中?我的評論被構造成一棵樹,(我這樣做:[官方doc](http://www.mongodb.org/display/DOCS/Trees+in+MongoDB#TreesinMongoDB-MaterializedPaths%28FullPathinEachNode%29)我想(我是新來的數據庫),查詢樹結構將是非常慢,因爲它就像在一個巨大的水桶裏釣魚一樣,並且每當我需要找到任何評論時,mongodb都會在我的db上存在任何其他評論的開銷。 – Blub 2011-04-27 12:56:07
如果您不喜歡@ frail的建議,也可以單獨評論集合,但同一篇文章中的同一篇文章的所有評論(與現在相同的結構,只需將評論字段移動到不同的集合中,使用相同的文章_id)。 – Thilo 2011-04-27 13:06:31