2017-06-21 97 views

回答

1

在這裏,你有兩個選擇:

  • 嵌入:那就是,包括到用戶文檔的其最喜愛的電影
  • 拆分集合名單:使用兩個獨立的集合,爲用戶和電影,通過編號引用他們

哪一個可供選擇?

您應該根據應用程序的訪問策略設計您的MongoDB集合。

一般情況下,你應該去嵌入電影轉換成DOC用戶如果:

  • 嵌入數據(電影)時,用戶信息檢索總是檢索。如果你總是檢索用戶信息,但很少你也需要電影數據,那麼嵌入不會那麼好。
  • 嵌入數據不經常修改
  • 基數不是太大(記得MongoDB文檔的最大大小是16MB)。在這種情況下,我認爲每個用戶最喜歡的電影的基數可以適用於嵌入它們,但是如果僅舉例來說,每個用戶有100K電影,則您不得不拆分集合
  • 數據完整性可能是一個問題:嵌入到用戶文檔中,您可以利用文檔級鎖定(如果您使用的是Wired Tiger存儲引擎)。否則,如果您處於併發系統中,使用這兩種集合設計,您必須在應用程序級別自行處理鎖定機制。
相關問題