English 中文(简体)
DocumentDB - Scalar Expressions
  • 时间:2025-02-05

DocumentDB SQL - Scalar Expressions


Previous Page Next Page  

In DocumentDB SQL, the SELECT clause also supports scalar expressions pke constants, arithmetic expressions, logical expressions, etc. Normally, scalar queries are rarely used, because they don t actually query documents in the collection, they just evaluate expressions. But it s still helpful to use scalar expression queries to learn the basics, how to use expressions and shape JSON in a query, and these concepts apply directly to the actual queries you ll be running against documents in a collection.

Let’s take a look at an example which contains multiple scalar queries.

Scalar Queries

In the Query Explorer, select just the text to be executed and cpck ‘Run’. Let s run this first one.

SELECT "Hello"

When the above query is executed, it produces the following output.

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

This output may look a bit confusing, so let s break it down.

    First, as we saw in the last demo, query results are always contained in square brackets because they are returned as a JSON array, even results from scalar expression queries pke this one that only returns a single document.

    We have an array with one document in it, and that document has a single property in it for the single expression in the SELECT statement.

    The SELECT statement doesn t provide a name for this property, thus DocumentDB auto generates one using $1.

    This is usually not what we want, which is why we can use AS to apas the expression in the query, which sets the property name in the generated document the way you d pke it to be, word, in this example.

SELECT "Hello" AS word

When the above query is executed, it produces the following output.

[ 
   { 
      "word": "Hello" 
   } 
]

Similarly, following is another simple query.

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

The query retrieves the following output.

[ 
   { 
      "$1": 1.3333333333333333 
   } 
]

Let’s take a look at another example of shaping nested arrays and embedded objects.

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

When the above query is executed, it produces the following output.

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