Mongo DB嵌套分片键

Noa*_*ter 4 sharding mongodb

我有关于Mongo分片键的问题.我有以下列方式构建的文档:

{
    "payload": {
        "id": "364e1f2c-6d4c-45fb-af19-841149286d67",
        "name": "John",
    },
    "source": "myApp",
    "version": "1.0",
    "additionalInfo": {
        "time": "2012-04-18T17:32:11+03:00"
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望我的分片键为:payload.name和additionalInfo.time.以下命令在语法错误时失败:

db.runCommand({ shardcollection : "collection.table", key : {additionalInfo.time: 1, payload.name: 1}})
Run Code Online (Sandbox Code Playgroud)

是否可以创建这样的分片键或仅可以接受顶级键.此外,如果我尝试插入没有分片键字段的文档,插入是否会失败?

Rem*_*iet 5

就是这样,你需要用引号括起你的关键字段:

db.runCommand({ shardcollection : "collection.table", key : {'additionalInfo.time': 1, 'payload.name': 1}})
Run Code Online (Sandbox Code Playgroud)