DocumentDBSQL-スカラー式

DocumentDB SQLでは、SELECT句は定数、算術式、論理式などのスカラー式もサポートします。通常、スカラークエリはコレクション内のドキュメントを実際にクエリするのではなく、式を評価するだけなので、ほとんど使用されません。ただし、スカラー式クエリを使用して、基本、式の使用方法、クエリでのJSONの形状を学習することは依然として役立ちます。これらの概念は、コレクション内のドキュメントに対して実行する実際のクエリに直接適用されます。

複数のスカラークエリを含む例を見てみましょう。

クエリエクスプローラーで、実行するテキストのみを選択し、[実行]をクリックします。これを最初に実行してみましょう。

SELECT "Hello"

上記のクエリを実行すると、次の出力が生成されます。

[ 
   { 
      "$1": "Hello" 
   } 
]

この出力は少し紛らわしいように見えるかもしれないので、それを分解してみましょう。

  • まず、前回のデモで見たように、クエリ結果はJSON配列として返されるため、常に角かっこで囲まれています。このようなスカラー式クエリの結果でも、単一のドキュメントのみが返されます。

  • 1つのドキュメントを含む配列があり、そのドキュメントには、SELECTステートメントの単一の式に対する単一のプロパティが含まれています。

  • SELECTステートメントはこのプロパティの名前を提供しないため、DocumentDBは$ 1を使用してプロパティを自動生成します。

  • これは通常、私たちが望んでいることではありません。そのため、ASを使用してクエリ内の式にエイリアスを設定できます。これにより、生成されたドキュメントのプロパティ名が、この例では希望どおりに設定されます。

SELECT "Hello" AS word

上記のクエリを実行すると、次の出力が生成されます。

[ 
   { 
      "word": "Hello" 
   } 
]

同様に、以下は別の簡単なクエリです。

SELECT ((2 + 11 % 7)-2)/3

クエリは次の出力を取得します。

[ 
   { 
      "$1": 1.3333333333333333 
   } 
]

ネストされた配列と埋め込みオブジェクトを整形する別の例を見てみましょう。

SELECT 
   { 
      "words1": 
         ["Hello", "World"], 
      "words2": 
         ["How", "Are", "You?"] 
   } AS allWords

上記のクエリを実行すると、次の出力が生成されます。

[ 
   { 
      "allWords": { 
         "words1": [ 
            "Hello", 
            "World" 
         ],
			
         "words2": [ 
            "How", 
            "Are", 
            "You?" 
         ] 
      } 
   } 
]