2013-11-15 121 views
0
挑選一個片鍵

比方說,我收藏的結構是這樣的:上泛型集合

{ 
    _id = ObjectId(1), 
    records : [ {n: "Name", v: "Kevin"}, 
       ..., 
       {n: "Age", v: 100} 
      ] 
} 

因爲我有一個複合索引(records.n-records.v),那又是我的片鍵?

回答

1

records是一個數組,你cannot use multi-key index for shard key所以答案是否定的,你不能用它作爲分片鍵。

我會說像這樣的模式一般來說是無用的 - 它很難查詢,很難修改甚至不提及排序。記錄{"Name": "Kevin", "Age": 100}的子文檔將是更好的選擇,並且您可以使用一些字段子集作爲分片鍵。

+0

我可以用我的集合和單個索引創建分片鍵嗎? –

+0

就我個人而言,我會選擇不同的模式(詳見編輯答案)。 – zero323

+0

我欣賞建議的模式更新。但是,由於我的索引要求很高,我需要保留通用的n-v結構。 –