Documentdb-sql-scalar-expressions

提供:Dev Guides
移動先:案内検索

DocumentDB SQL-スカラー式

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

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

スカラークエリ

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

SELECT "Hello"

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

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

この出力は少しわかりにくいかもしれませんので、分解してみましょう。

  • 最初に、最後のデモで見たように、クエリ結果はJSON配列として返されるため、クエリ結果は常に角括弧で囲まれます。単一のドキュメントのみを返すこのようなスカラー式クエリの結果でもです。
  • 1つのドキュメントを含む配列があり、そのドキュメントには、SELECTステートメントの1つの式に対する1つのプロパティがあります。
  • 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?"
         ]
      }
   }
]