配列の操作

配列は、ゼロ以上の項目を順序付けしたコレクションです。配列の項目は要素と呼ばれます。配列にNULL値を含めることはできません。

BaggageInfoスキーマには多数の配列があります。スキーマからの単純な配列は、それぞれのflightLegactions配列です。パス式を使用して、単純な配列またはネストされた配列をナビゲートできます。
"actions" : [ {
"actionAt" : "SYD",
"actionCode" : "ONLOAD to SIN",
"actionTime" : "2019.02.28 at 22:09:00 AEDT"
}, {
"actionAt" : "SYD",
"actionCode" : "BagTag Scan at SYD",
"actionTime" : "2019.02.28 at 21:51:00 AEDT"
}, {
"actionAt" : "SYD",
"actionCode" : "Checkin at SYD",
"actionTime" : "2019.02.28 at 20:06:00 AEDT"
} ]
例1: チケット番号が1762357254392の乗客について、それぞれの手荷物の第1区間の詳細(その区間で実行されたすべてのアクションを含む)をフェッチします。
SELECT bagDet.fullName, bagDet.bagInfo[].flightLegs[0]
AS Details FROM BaggageInfo bagDet WHERE ticketNo=1762357254392

前述の問合せで、flightLegsは配列です。スライス・ステップ[0]flightLegs配列に適用されます。配列要素は0で始まるため、これにより、配列内の最初のレコードが取得されます。乗客ごとにそれぞれの手荷物の第1区間情報を取得します。ticketNoを使用して追加フィルタを適用すると、1人の乗客情報のみがフェッチされます。

出力:
{"fullName":"Teena Colley",
"Details":[[
{"actionAt":"MSQ","actionCode":"ONLOAD to FRA","actionTime":"2019-02-13T07:17:00Z"},
{"actionAt":"MSQ","actionCode":"BagTag Scan at MSQ","actionTime":"2019-02-13T06:52:00Z"},
{"actionAt":"MSQ","actionCode":"Checkin at MSQ","actionTime":"2019-02-13T06:11:00Z"}],
"2019-02-13T09:00:00Z","2019-02-13T07:00:00Z","BM365","FRA","MSQ"]}

ノート:

スライス・ステップを使用して、その位置が[low: high]の範囲内にあるすべての配列要素を選択することもできます。ここで、lowとhighは範囲の限度を指定する式です。下限と上限が不要な場合は、lowとhighの式は省略できます。

例: チケット番号が1762357254392の乗客について、すべての区間の詳細(すべての区間で実行されたすべてのアクションを含む)をフェッチします。

スライス・ステップを使用して、flightLegs配列の最初の3つのレコードをフェッチします。
SELECT bagDet.fullName, bagDet.bagInfo[].flightLegs[0:2] AS Details
FROM BaggageInfo bagDet WHERE ticketNo=1762357254392
出力:
{"fullName":"Teena Colley",
"Details":[
 [
   {"actionAt":"MSQ","actionCode":"ONLOAD to FRA","actionTime":"2019-02-13T07:17:00Z"},  
   {"actionAt":"MSQ","actionCode":"BagTag Scan at MSQ","actionTime":"2019-02-13T06:52:00Z"},   
   {"actionAt":"MSQ","actionCode":"Checkin at MSQ","actionTime":"2019-02-13T06:11:00Z"}
 ],
 "2019-02-13T09:00:00Z","2019-02-13T07:00:00Z","BM365","FRA","MSQ", 
 [
   {"actionAt":"HKG","actionCode":"Offload to Carousel at HKG","actionTime":"2019-02-13T11:15:00Z"},
   {"actionAt":"FRA","actionCode":"ONLOAD to HKG","actionTime":"2019-02-13T10:39:00Z"},
   {"actionAt":"FRA","actionCode":"OFFLOAD from FRA","actionTime":"2019-02-13T10:37:00Z"}
 ],
 "2019-02-13T11:18:00Z","2019-02-13T07:17:00Z","BM313","HKG","FRA"
]}