В DocumentDB SQL предложение SELECT также поддерживает скалярные выражения, такие как константы, арифметические выражения, логические выражения и т. Д. Обычно скалярные запросы используются редко, потому что на самом деле они не запрашивают документы в коллекции, они просто оценивают выражения. Но все же полезно использовать запросы скалярных выражений, чтобы изучить основы, как использовать выражения и формировать JSON в запросе, и эти концепции применяются непосредственно к фактическим запросам, которые вы будете выполнять для документов в коллекции.
Давайте посмотрим на пример, который содержит несколько скалярных запросов.
В Query Explorer выберите только текст для выполнения и нажмите «Выполнить». Давайте запустим этот первый.
SELECT "Hello"
Когда вышеуказанный запрос выполняется, он производит следующий вывод.
[ { "$1": "Hello" } ]
Этот вывод может выглядеть немного запутанным, поэтому давайте разберем его.
-
Во-первых, как мы видели в последней демонстрации, результаты запроса всегда содержатся в квадратных скобках, потому что они возвращаются в виде массива JSON, даже в результате таких запросов скалярного выражения, как этот, который возвращает только один документ.
-
У нас есть массив с одним документом, и этот документ имеет единственное свойство для одного выражения в инструкции SELECT.
-
Оператор SELECT не предоставляет имя для этого свойства, поэтому DocumentDB автоматически генерирует его, используя $ 1.
-
Обычно это не то, что нам нужно, поэтому мы можем использовать AS для создания псевдонима выражения в запросе, которое задает имя свойства в сгенерированном документе так, как вам хотелось бы, чтобы слово было в этом примере.
Во-первых, как мы видели в последней демонстрации, результаты запроса всегда содержатся в квадратных скобках, потому что они возвращаются в виде массива JSON, даже в результате таких запросов скалярного выражения, как этот, который возвращает только один документ.
У нас есть массив с одним документом, и этот документ имеет единственное свойство для одного выражения в инструкции 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
Когда вышеуказанный запрос выполняется, он производит следующий вывод.