无法使用索引键(_id)作为mongodb中的分片键

时间:2015-07-01 10:14:19

标签: mongodb sharding

我是mongodb的新手,这是一个简单的案例,但有一个错误:

我想使用_id字段(自动生成和索引)作为mongodb中的分片键,但是出现了这个错误。

{
"proposedKey" : {
    "_id" : "hashed"
},
"curIndexes" : [
    {
        "v" : 1,
        "key" : {
            "_id" : 1
        },
        "name" : "_id_",
        "ns" : "jackfruit.scenicspots"
    },
    {
        "v" : 1,
        "key" : {
            "geoLocation" : "2dsphere"
        },
        "name" : "geoLocation_2dsphere",
        "ns" : "jackfruit.scenicspots",
        "2dsphereIndexVersion" : 2
    }
],
"ok" : 0,
"errmsg" : "please create an index that starts with the shard key before sharding."

}

错误消息显示我已经在密钥_id_上有一个名为_id的索引,为什么错误仍然存​​在?

1 个答案:

答案 0 :(得分:0)

我从手册中找到了答案。

  

MongoDB不支持在分片集合中创建新的唯一索引,也不允许您在_id字段以外的字段上使用唯一索引对集合进行分片。

这是一个解决方案:

Enforce Unique Keys for Sharded Collections