在通用集合上挑选碎片密钥

时间:2013-11-15 18:59:50

标签: mongodb

假设我的收藏品的结构如下:

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

由于我有一个复合索引(records.n-records.v),那会是我的分片键吗?

1 个答案:

答案 0 :(得分:1)

records是一个数组而你cannot use multi-key index for shard key所以答案是否定的,你不能将它用作分片键。

我会说像这样的架构通常说起来相当无用 - 很难查询,很难修改甚至不提及排序。记录为{"Name": "Kevin", "Age": 100}的子文档将是更好的选择,您可以使用某些字段子集作为分片键。