0
如果您看到的數據結構如下所示,您可以看到一個文件中的每個記錄對於ATT1和ATT2具有相同的值。如何在嵌入文檔過大時設計架構
// Store in fileD001.txt
ATT1 | ATT2 | ATT3 | ATT4 ... | ATT200
D001 | 10102011 | x13 | x14 ... | x1200
D001 | 10102011 | x23 | x24 ... | x2200
...
D001 | 10102011 | xN3 | xN4 ... | xN200
// Store in fileD002.txt
ATT1 | ATT2 | ATT3 | ATT4 ... | ATT200
D002 | 10112011 | x13 | x14 ... | x1200
D002 | 10112011 | x23 | x24 ... | x2200
...
D002 | 10112011 | xN3 | xN4 ... | xN200
// Store in fileD003.txt
ATT1 | ATT2 | ATT3 | ATT4 ... | ATT200
D003 | 10132011 | x13 | x14 ... | x1200
D003 | 10132011 | x23 | x24 ... | x2200
...
D003 | 10132011 | xN3 | xN4 ... | xN200
Method One: Assume I use the following structure to store the data.
doc = { 「ATT1" : "D001",
"ATT2" : "10102011",
"ATT3" : "x13",
"ATT4" : "x14",
...
"ATT200" : "x1200"
}
這是問題,數據中包含太多重複的信息,浪費數據庫空間。但是,好處是每個記錄都有自己的_id。
Method One: Assume I use the following structure to store the data.
doc = { 「ATT1" : "D001",
"ATT2" : "10102011",
"sub_doc" : { "ATT3" : "x13",
"ATT4" : "x14",
...
"ATT200" : "x1200"
}
}
這是問題所在,數據大小N,其爲1左右〜5000,是太大,並且不能由MongoDB的一個插入操作來處理。當然,我們可以使用$ push update修飾符逐漸追加數據。但是,每條記錄都沒有這種方式。
我並不是說每個記錄都必須有自己的ID。我只是爲這樣的任務尋找更好的設計解決方案。
謝謝