2013-08-22 30 views
1

我遇到了一個性能不錯的mongodb模型。我有200萬名員工。我需要存儲一系列可以訪問員工的主管ID。這樣的圖片數據..在一個文檔中使用大陣列的mongodb性能

{ 
'fullName':'Jonathan Smith', 
'employeeId':'8675309', 
'supervisors':[1234,7654,45676,34543,56545] 
} 

每個數組可能有數百個元素。元素也可以波動。所以我需要執行快速的$ puts和$ pull來從數組中添加和減去元素。

我的一個很好的示例操作是..我們有一個5555的主管,現在有51萬名員工。所以我需要更新這51萬名員工,爲員工數組添加5555。

然後查詢會給我所有的員工主管5555有權訪問。

有沒有更好的方法來做到這一點?我能做些什麼來保證表現?

回答

1

聽起來這些510,000名員工實際上可能屬於不同的班級或實體,而不僅僅是「主管5555管理的員工」。稱這個類爲「A」。員工將被標記爲屬於「A」類(可能還有其他類),5555將被標記爲「A」的經理,但不是個別員工。這是假設類別「A」的經理更有可能改變,而所有51萬名員工脫離「A」類。

+0

好吧,我明白你在說什麼了。由於主管可能擁有相同的組A,所以這可以使列表中的數組元素更小。因此,可以說我採用了這種方法。那麼我仍然有200萬名員工,並且需要在這些員工之間進行推拉操作,從而增加了團隊成員身份。任何性能問題? – FarscapePROJ

+0

200萬個文件不是很多。除非您經常需要通過交互式響應實時更新所有這些文檔,否則這不是什麼大問題。您應該能夠每秒更新幾千個文檔。 – drmirror

+1

我最近寫了一篇關於在MongoDB中增加數組的博客文章:http://goo.gl/eDcV5z在那裏你可以看到這種行爲的基準。 –

相關問題