DocumentDB SQL - Expressions scalaires

Dans DocumentDB SQL, la clause SELECT prend également en charge les expressions scalaires telles que les constantes, les expressions arithmétiques, les expressions logiques, etc. Normalement, les requêtes scalaires sont rarement utilisées, car elles n'interrogent pas réellement les documents de la collection, elles évaluent simplement les expressions. Mais il est toujours utile d'utiliser des requêtes d'expressions scalaires pour apprendre les bases, comment utiliser des expressions et mettre en forme JSON dans une requête, et ces concepts s'appliquent directement aux requêtes réelles que vous exécuterez sur les documents d'une collection.

Jetons un coup d'œil à un exemple qui contient plusieurs requêtes scalaires.

Dans l'explorateur de requêtes, sélectionnez uniquement le texte à exécuter et cliquez sur «Exécuter». Lançons ce premier.

SELECT "Hello"

Lorsque la requête ci-dessus est exécutée, elle produit la sortie suivante.

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

Cette sortie peut sembler un peu déroutante, alors décomposons-la.

  • Premièrement, comme nous l'avons vu dans la dernière démo, les résultats des requêtes sont toujours contenus entre crochets car ils sont renvoyés sous forme de tableau JSON, même les résultats de requêtes d'expressions scalaires comme celle-ci qui ne renvoie qu'un seul document.

  • Nous avons un tableau avec un document, et ce document contient une seule propriété pour l'expression unique dans l'instruction SELECT.

  • L'instruction SELECT ne fournit pas de nom pour cette propriété, donc DocumentDB en génère automatiquement un en utilisant $ 1.

  • Ce n'est généralement pas ce que nous voulons, c'est pourquoi nous pouvons utiliser AS pour alias l'expression dans la requête, qui définit le nom de la propriété dans le document généré comme vous le souhaiteriez, mot, dans cet exemple.

SELECT "Hello" AS word

Lorsque la requête ci-dessus est exécutée, elle produit la sortie suivante.

[ 
   { 
      "word": "Hello" 
   } 
]

De même, voici une autre requête simple.

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

La requête récupère la sortie suivante.

[ 
   { 
      "$1": 1.3333333333333333 
   } 
]

Jetons un coup d'œil à un autre exemple de mise en forme de tableaux imbriqués et d'objets incorporés.

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

Lorsque la requête ci-dessus est exécutée, elle produit la sortie suivante.

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