2013-04-30 52 views
0

我在MongoDB的一個集合: 用戶採集拆分有關MongoDB

{ 
_id:xxxxxx, 
friendList:[12345,67899,57889],//list of ids of friends 
readBooks:[bookid1,bookid2], 
wanttoread:[bookid5,bookid6] 
} 

友人收藏

{ _id:12345, 
readBooks:[bookid3,bookid5], 
wantToread:[bookid1]} 

我有另一個集合books賦予的名稱和一本書爲ID的細節。 我想根據readBookwanttoread在mongodb中對此進行分片。如果他們擁有相同的書籍,則數據會轉到相同的分片。

我搜索了這個,但我找不到基於數組的碎片。有什麼辦法可以做到嗎?或者是否需要創建另一個集合,如

{id: userid or friend id,bookId:bookid} 

和基於bookId的分片。

+0

你不能做多密鑰分片索引atm – Sammaye 2013-04-30 19:38:21

回答

0

您只能使用一個分片鍵,並且在選擇一個分片鍵後無法更改分片鍵。

我建議分片集有最大的基數(文檔數量最多)。

MongoDB Sharding