2012-04-19 90 views
4

我有一个关于Mongo分片键的问题。我有以下几种结构的文档:Mongo DB嵌套分片键

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

我想我的分片关键是:payload.name和additionalInfo.time。下面的命令在语法错误失败:

db.runCommand({ shardcollection : "collection.table", key : {additionalInfo.time: 1, payload.name: 1}}) 

是否有可能创造这样的碎片键或仅顶层键是可以接受的。此外,如果我尝试插入没有分片键字段的文档,插入操作会失败吗?

回答

5

它,你需要用引号括起来的关键领域:

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