2017-09-13 52 views
0

有一個包含100.000個文檔的集合。其中只有10人必須擁有其他文件不需要的額外財產(例如,只有最高職位的部門名單纔有財產'位置'); 據我瞭解這兩種方法應該工作得很好,但哪一個是可取的,因爲使用的NoSQL數據庫:mongodb架構設計 - 添加集合或擴展現有的集合

  1. 增加一個集合與具有2屬性文件:DepartmentID的,位置。
  2. 將屬性'位置'添加到選定的文檔,所以其他人不會擁有它。

回答

1

您面臨的問題衆所周知。例如,您可以使用源代碼。

當你更新的代碼,你將它保存爲User.js, User2.js, User3.js ... ?

還是你使用versionning系統如Git,並有獨特的User.js

翻譯你的問題的git類比,你應該更新當前的數據。


在mongodb中,您實際上有兩種選擇來執行更新。

  • 更新代碼中的模型,並更新數據庫中的每個條目以匹配新模型。

  • 創建一個適用於新條目的新模型,並且仍舊具有處理舊格式數據的舊模型。

use-more-than-one-schema-per-collection-on-mongodb

+1

我只打算給文檔添加到收藏,現在它只是規劃。因此,可以將兩個模式(文檔類型)添加到一個集合中,而不需要額外的步驟(如額外的索引或smth)? – Anton

+1

完全沒有額外的步驟。這是nosql數據庫的最佳實力之一。模塊化/演變性。 –