2016-04-15 100 views
1

我剛剛開始使用mongoDB。mongodb:使用嵌套文檔或單獨的引用集合

我必須存儲用戶數據。對於每個用戶,每天將添加一個小數據記錄(不超過500字節)或更新一些(大多數時間不超過10)。

現在我的問題是,我應該將它建模爲用戶集合,並將數據記錄嵌入到每個用戶文檔中,或者將用戶集合和數據記錄集合從每個數據文檔引用到用戶文檔?

回答

1

這主要取決於你要做的DB

我認爲在你的數據庫,你需要存儲用戶特定數據(姓名,地址,ECC)和「其他」的數據(查詢您的'小數據記錄')

如果查詢要獲取用戶特定數據以及「其他」數據,則最好只使用用戶集合並將「其他」數據嵌入到用戶集合中。通過這種方式,您可以在一個查詢中獲取用戶特定的數據和「其他」數據。

如果查詢將僅獲取'其他'數據(從user_id的示例開始),並且您計劃永遠不需要用戶特定數據以及「其他」數據,您可以使用數據收集,在其中存儲您的「其他」數據以及user_id(例如更新數據)

請記住,通常,不推薦在MongoDB中使用引用,除非你有很好的理由去做,所以我會去第一個解決方案

+0

因此,向子文檔添加新記錄不是問題?我每次都必須爲整個文檔加載整個文檔嗎? – Thomas

+0

是的,你可以更新和添加數據到你的子文檔,並且你不需要爲這個 – Moppo

+0

加載整個文檔非常感謝。我也想將所有記錄與用戶數據一起。 – Thomas

1

這一切都取決於用例 - 數據類型,讀取頻率,數據訪問模式等

就你而言,它看起來像「小數據記錄」依賴於用戶數據,而不是真正的獨立數據。由於尺寸也很小,最好將數據嵌入到用戶集合中。