我一直在閱讀一些關於MongoDB的文檔設計,特別是關於引用,嵌入和鏈接的文檔設計。MongoDB的正確文檔設計
我還不確定什麼樣的最佳佈局是我想存儲的那種文檔。
想象一下,如果你願意,一種動態表單構建應用程序。每個表單都有一組靜態屬性(名稱,描述等),一組動態創建的字段(name = text,age = number等)和一組提交的結果。
事情是這樣的:
$obj = array(
'name' => 'Test',
'description' => 'Hello',
'live' => false,
'meta' => array (
'name' => 'text',
'age' => 'number',
'sex' => 'boolean',
),
'records' => array(
array('name' => 'Test', 'age' => 20, 'sex' => true),
...
...
)
);
我的困惑主要來自是否我應該集合內嵌入的記錄,或者我是否應該爲每個單獨的形式收藏。我的直覺是做後者,而我一直在閱讀的MongoDB書籍中說嵌入數據是可以的。
有人可以協助,因爲我希望表單有大量的提交數據。
謝謝。
編輯: 我還發現this question是有幫助的。
這個問題屬於程序員.stackexchange.com – 2012-02-20 15:17:59
這就是說,答案是「它取決於」。如果您只需要在特定表單的上下文中訪問/查詢記錄,請嵌入它們。如果您需要獨立訪問/查詢它們,您可能需要創建一個單獨的集合。 – 2012-02-20 15:19:25
@BenLee:如果我需要某些字段類型的地理空間索引,單獨收集方法會更有利嗎?我想不出在表單上下文之外需要表單提交的情況,但是就性能而言,我認爲在單個集合中混合不同表單的記錄會在磁盤上創建非連續數據並且隨着越來越多的記錄被提交而降低查詢性能? – Leigh 2012-02-20 15:30:06