2016-11-12 46 views
0

我有超過10K用戶的場景,對於每個用戶,我需要存儲一個活動日誌。在MongoDB中存儲多個用戶的日誌

日誌需要可搜索和永久(沒有環繞緩衝區等)。

我期望每個用戶最多可以有50K條目。

我想知道是否是有意義的日誌條目作爲一個集合存儲用戶對象

{ 
    User : "my user", 
    Log : [ ..., ..., ...] 
} 

還是有每個用戶的表裏面?

{ 
    User : "my user", 
    LogTableID : "my table id" 
} 

,並在該表中的每個條目將日誌。

+0

不會像從特定用戶獲取日誌並進行分頁的搜索速度較慢? – Thomas

回答

0

不,沒有意義。只創建一個存儲所有用戶日誌的集合。

如果您將其索引爲user_id(如您應該那樣),用戶查找將會很快。 您將可以對用戶進行彙總查詢(您永遠不知道何時需要創建該報告)。

+0

這個集合將會增長到500萬個條目,這對存儲索引不會有什麼問題?我應該提到,審查日誌是用戶自己每天完成的幾次常用操作,因此該數據庫上的大部分操作都將由用戶瀏覽其日誌。 – Thomas

+0

@Thomas:如果你有足夠的內存來支持你的工作集,你將不會遇到任何單一集合的問題。如果你沒有足夠的內存,無論你選擇何種方式,都會遇到問題。 –

+0

這是一個很好的觀點:)好吧,我會嘗試這一點並進行基準測試 – Thomas