2016-08-02 11 views
0

Azure DocumentDBを使用していくつかのKey-Valuesペアを保存しました。これは私が私はこのようなDocumentDBのクエリを記述する場合、Azure DocumentDBでは、一部のクエリが機能しません。

SELECT C.Value FROM C 

このクエリは動作しません

{ 
    "Key": "Deleted", 
    "Value": { 
     "email": "[email protected]" 
    } 
} 

を使用し、文書の構造です。ここに私が得るエラーメッセージがあります。

私は理解して
Syntax error, incorrect syntax near 'Value'. 

しかし、このクエリが正常に動作し、

SELECT C.Key FROM C 

'Valueは' 紺碧documentdbのキーワードでなければなりません。どのように私はそれをクエリできますか?

+0

あなたはその識別子を引用しようとしましたか? 'SELECT C.'Value 'FROM C'または' SELECT C. "の値のようなもの –

+0

値c.valueを試しましたか? – Aravind

+0

@MilanTomešはい私は両方を試みました。進歩はありません! –

答えて

2

ドキュメントをJSONとして格納されているので、次のように、あなたがそれらにアクセスすることができます。

SELECT C['Value'] FROM C 

これはになります:

[ 
    { 
    "Value": { 
     "email": "[email protected]" 
    } 
    } 
] 
2

値がなぜそうこれはDocumentDB構文のキーワードですエラーが発生します。この記事のValueキーワードを参照してくださいDocumentDB syntax - VALUEキーワードはJSON値を返す方法を提供します。あなたはそれをヤニックがDocumentDBクエリの文法で、すなわち

SELECT C['Value'] FROM C 
1

を述べている方法を照会することができます。この問題を回避するには

、構文< collection_expresion> .property_nameは< collection_expressionに> [ "PROPERTY_NAME"]と全く同じです。だから、効果的に、

c.name 

はスペース(構文< collection_expressionに> [ "property_nameは"] 1は、 '私の価値' のような非識別子文字を持っているかもしれない性質をderefenceすることができます

c["name"] 

と同じです私と値)、または 'バリュー' などのキーワードの間に、そこでなど

'を選択'、

SELECT C["Value"] 
FROM C 
あなたのケースでは

が動作します。

関連する問題