2011-10-17 107 views
7

對每個用戶使用子集合(約15)是否有任何意義?用戶數量約爲10k。子集合中的記錄數量可以達到2M。或者,也許我應該使用常見的大集合?感謝您的回答。使用子集合的mongo

回答

8

嵌入式集合使數據庫更簡單(它們減少了集合的數量)並使數據庫更快地工作。我通常試圖嵌入一切,只有當我不能創建單獨的集合。如果您的嵌入式集將是很大的,你可以在加載過程中從用戶排除:

db.posts.find({ tags : 'tennis' }, { comments : 0 }); 

上面的查詢將加載信息沒有評論。 Documentation

但嵌入式集合還增加了一些複雜性。例如,你mongodb無法爲你分類嵌入的集合。訂單總是默認。但你可以在客戶端做到這一點。 如果你默認順序的工作,你可以通過$切片頁面嵌套集合:

db.posts.find({}, {comments:{$slice: [20, 10]}}) // skip 20, limit 10 

也看看這個doc約架構設計。

So + 1可以隨時嵌入。