ネストされたデータ型の操作
Oracle NoSQL Databaseは、ネストされたデータ型をサポートしています。つまり、あるデータ型を別のデータ型内に含めることができます。たとえば、配列内のレコード、配列内の配列などです。サンプルのBaggageinfoスキーマでは、配列の配列のネストされたデータ型を使用します。
               
例1: チケット番号が1762330498104の乗客について、第1区間で実行された様々なアクションをフェッチします。
               SELECT bagDet.fullName, bagDet.bagInfo[].flightLegs[0].values().values() AS Action
FROM BaggageInfo bagDet WHERE ticketNo=1762330498104説明: 前述の問合せでは、
               flightLegsはネストされたデータ型です。この配列には、レコードの配列であるactions配列があります。前述の問合せは2つのステップで実行されます。 
                  - $bag.bagInfo[].flightLegs[0].values()は、- flightLegs配列の最初のレコードのすべてのエントリを示します。これには、- actions配列が含まれます。これを(- values()を使用して)繰り返し、次に示すように- actions配列のすべてのレコードを取得できます。
- $bag.bagInfo[].flightLegs[0].values().values()は、- actions配列のすべてのレコードを示します。
出力: 
               {"fullName":"Michelle Payne",
"Action":["SFO","ONLOAD to IST","2019-02-02T12:10:00Z","SFO",
"BagTag Scan at SFO","2019-02-02T11:47:00Z","SFO",
"Checkin at SFO","2019-02-02T10:01:00Z"]}例2: チケット番号が1762340683564の乗客について、第1区間で実行された最後のトランジット・アクションの更新の詳細を表示します。
               SELECT bagDet.fullName, (bagDet.bagInfo[].flightLegs[0].values())[2].actionCode
AS lastTransit_Update FROM BaggageInfo bagDet WHERE ticketNo=1762340683564説明: 前述の問合せは次のステップを使用して処理されます。
                  
               - $bagDet.bagInfo[].flightLegs[0].values()は、- flightLegs配列の最初のレコードのすべてのエントリを示します。
- bagInfo[].flightLegs[0].values())[2]は、- flightLegs配列の最初の要素内の- actions配列の3番目(最後)のレコードを示します。
- actions配列に複数のレコードがあります。bagInfo[].flightLegs[0].values())[2].actionCodeは、actionCode要素に対応する値をフェッチします。
出力: 
                     
               
            {"fullName":"Mary Watson","lastTransit_Update":"Checkin at YYZ"}ノート:
後の項で、size関数を使用して配列索引をハードコードすることなく、一般的な方法で同じ問合せを記述する方法について学習します。「複合データ型のサイズの検索」を参照してください。