我是Mongo的新手,一直試圖組織部分數據庫的最佳方式。設想一個文檔構建程序,用戶通過從預定義的模板中選擇「段落」來組成文本文檔。我的問題是關於如何存儲模板結構;當用戶保存他們的文本文檔時,它是完全獨立和不復雜的。MongoDB設計 - 大型嵌套文檔,還是跨多個集合?
一個完整的'模板'可能看起來如下(簡化)。 :
{
description: 'Template 1',
someOtherField: '',
. . .
sections: [
{
description: 'Section 1',
paragraphs: [
{
description: 'Paragraph A',
subparagraphs : [
{
text: 'This is some text',
optionalTexts: [
{
text: 'This is optional'
},
. . more . .
]
}
. . more . .
]
}
. . more . .
]
}
}
正如你所看到的,它們是相當嵌套的,可能包含大量數據。
我會運行的查詢實現的事情像「列出部分屬於模板56」,「給我一段對象爲第1234」;以及關於單個項目的管理任務,「將5678分段的文本更新爲...」,「爲第7568部分創建新段落」。。
我目前有兩個集合:
- 模板 - 包含基本信息和部分陣列模板的文檔。
- 段落 - 全段文件(包括嵌套子段等)。每個段落文檔都有一個引用模板文檔中某個節的_id的字段。
這是一個更明智的方法比擁有一個集合甚至更深的嵌套文檔更明智嗎?
如果我的問題沒有「答案」,一些好的資源將不勝感激。
感謝
非常感謝,我沒有意識到這一點!我將重新評估數據將如何被需要,並從那裏去。 – 2014-09-21 22:05:06