2013-12-10 91 views
0

我正在開發一個存儲表單內容的應用程序。每個表單可能有數百萬條記錄。MongoDB數據庫的優化設計

我的後端是.NET/MongoDB。我目前已經實現了以下設計,但我不確定它是否是這種數量內容的最有效解決方案。

[{ 
    formId: '12344', 
    records: [ { id: '12444543', customerName: 'Panda Express', ... } ] 
}, ...] 

的頂級「形式」的數量不會在大多數情況下超過20記錄每種形式在1000和一百萬之間。在大多數情況下,每個「記錄」中的屬性數量不會超過100個。

這是在mongo中做到這一點的最有效方法嗎?

回答

1

對我來說這不是最好的設計。如果文檔增長速度很快,將記錄存儲在單個文檔中並不是一個好主意。由於最大BSON文檔大小爲16MB,因此當您擁有數百萬條記錄時可能會導致問題。

相反,您可以按如下方式單獨存儲記錄。

記錄集:

id: '12444543', 
formId : '12345', 
customerName: 'Panda Express', 
... 
+0

那我是如何開始的,但認爲對格式ID過濾可能會更好。如果這是最佳的,我也贊成這個簡單! – amcdnl

+0

既然你說你最多有20個表單,第二個選項可能是將每個表單的記錄存儲在一個單獨的集合中。這會讓你免受formId的過濾。 –

+0

有趣...所以每個表單的記錄都有獨立的集合... – amcdnl