假設我有誰都有一個ID的用戶,我想存儲的歷史記錄(文件),該用戶的每一天,什麼是更好的:MongoDB歷史數據存儲 - 最佳實踐?
- 創建一個新文檔的每個記錄和搜索用戶ID;或
- 不斷更新並將該數據嵌入到隨時間不斷增長的單個用戶文檔中?
大多數情況下,我只想爲用戶檢索當前文檔,但所有記錄都應該可以隨時訪問,而不需要超長的搜索/查詢。
假設我有誰都有一個ID的用戶,我想存儲的歷史記錄(文件),該用戶的每一天,什麼是更好的:MongoDB歷史數據存儲 - 最佳實踐?
大多數情況下,我只想爲用戶檢索當前文檔,但所有記錄都應該可以隨時訪問,而不需要超長的搜索/查詢。
有很多變數可以影響這樣的決定。一個大文件似乎最明顯,只要它不會增長到不切實際的大或甚至不允許的大小(請注意,一個文檔最多可以有16MB大小)。
爲每個條目使用文檔也是完全可行的,並且提供了創建適當的索引不應導致查詢緩慢。
文檔的大小是有限制的。它是(從v1.8開始)16 MB。所以,如果你更新&嵌入,你可以簡單地用完房間。另外,mongo根據集合中的平均文檔大小分配文檔空間。如果您不斷調整/調整大小,可能會對性能產生負面影響。
我認爲爲每個記錄創建新文檔要更安全,並且如果/當您想整理這些數據時,請在地圖/縮減作業中進行。
1.8的大小限制是16MB;) –
已更新。謝謝。 – z5h
謝謝你的回答。由於兩個回覆質量都相同(恕我直言),我會將Remons標記爲正確,因爲截至目前您還有一個贊成票,而且他的積分也較少,希望您不要介意。你的回答仍然非常感謝。 –
GivEn大多數時候你想要的只是當前的文件,你應該更有興趣能夠檢索* that *「沒有超長的搜索/查詢」 – APC
是的,這是我的想法,但只是想確保這實際上是正確的方法(也感謝編輯) –