2016-04-27 10 views
4

この質問があまりにも愚かであると思われる場合は、まず申し訳ありません。しかし、私は最近N1QLを学び、私の声明のためにいくつかの出力が必要です。私のバケツ名はMultiSiteResponseTimeであり、 "を選択してMultiSiteResponseTime;からHourResponsetime.Hourを選択すると、すべての時間の結果を取得しようとしています。しかし、私は結果を得ることはありません。私が理解しているところから、内側の要素にアクセスしたいのであれば、そのように使う必要があります。HourResponsetime.Hourしかし、私はどこが間違っているのか分かりません。あなたが特定のキーの結果を得ることに私を助けることができる場合にも、たとえば、私は愚かな質問を意味する。これは何のことではありません時間1N1QLでCouchbaseの内部要素にアクセス

{ 
    "Para": "ResponseTime", 
    "Date": "18-04-2016", 
    "Qantas": { 
    "HourResponsetime": [ 
     { 
     "Hour": 0, 
     "ResponseTime": 8 
     }, 
     { 
     "Hour": 1, 
     "ResponseTime": 9 
     }, 
    ] 
    } 
} 

答えて

7

ためRESPONSETIMEの存在の結果を知っていただきたいと思います!

Aの場合、点線のパス構文 "A.B"はJSONオブジェクトのときにうまく機能します。あなたの文書構造はのオブジェクトがHoursResponseTimeにあります。そのため、動作しません。配列インデックスセレクタをアスタリスク:A[*]と組み合わせて使用​​する方法です。

また、パスの構文は、ドキュメントのコンテンツのルートから始まります。ここには仲介オブジェクトQantasがあります。これはパスの一部にする必要があります。

これは私達を与える:

SELECT Qantas.HourResponsetime[*].Hour FROM MultiSiteResponseTime; 

これは、ドキュメントごとにHourのの配列を返す必要があります。

+0

ありがとうたくさんのサイモン、私は望ましい結果を得ています。だから私が間違っている場合は、私は配列の内容にアクセスする必要があるときはいつでも[*]アステリックスについて言及する必要があります。 –

+0

アレイのすべての要素に対して1つの属性の値を収集する場合はYesです。たとえば、特定の要素を取得することもできます。 [3] –

関連する問題