2017-10-12 3 views
3

Est-ce que quelqu'un sait comment utiliser une requête SQL sur une Collection CosmosDB avec un tiret dans le nom? Par exempleComment utiliser SQL Query avec trait d'union dans le nom de collection?

SELECT * FROM product-group where product-group.id = "3829503" 

J'ai vu que les propriétés sont accessibles en utilisant la syntaxe [ « »] mais n'a pas vu de solutions pour le nom de la collection actuelle.

Répondre

2

Lorsque vous interrogez via DocumentDB SQL, vous n'avez pas besoin de spécifier le nom exact de la collection; vous spécifiez vraiment un alias dans votre requête.

Dans l'Explorateur de requêtes (via le portail), toutes les requêtes sont effectuées en sélectionnant d'abord une collection. À ce stade, utilisez un alias simple pour interroger. Par exemple, voici une requête sur une collection appelée sample-data (sélectionnée dans la liste déroulante "Collections"), mais je n'ai pas besoin de spécifier le nom de la collection dans la requête. J'utilise simplement mycollection comme un alias pour sample-data:

enter image description here

Et dans le code, l'appel SDK inclut à la fois un paramètre de base de données et un paramètre de collecte, ce qui évite à nouveau la nécessité pour le nom de la collection réelle dans la requête. Par exemple, la même requête, appelée de C#, pourrait ressembler à ceci:

client.CreateDocumentQuery<MyObject>(
      UriFactory.CreateDocumentCollectionUri("mydb", "sample-data"), 
      "SELECT * FROM mycollection WHERE mycollection.id = '3829503'"); 
+0

[! Ne pas publier des images de code ou erreurs] (https://meta.stackoverflow.com/q/303812/995714 – Rob

+2

@rob - Cette réponse * nécessitait * la capture d'écran, comme je le fais pour illustrer comment faire cela dans le portail spécifiquement, la partie clé étant la liste déroulante de la collection. Et en dessous, le code non-image dans un appel SDK. –

+0

vous avez raison, vous spécifiez toujours une collection que ce soit l'explorateur SDK ou Query afin que vous puissiez simplement utiliser n'importe quel alias dans la requête, merci! – amsub24