2012-04-19 10 views
4

Mongoシャードキーに関する質問があります。 payload.nameとadditionalInfo.time:私はする鍵に私のシャードを希望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" 
    } 
} 

:私は、次のように構造化された文書を持っています。次のコマンドは構文エラーで失敗します。

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}})