Tutoriel : Interroger l’API Gremlin Azure Cosmos DB à l’aide de GremlinTutorial: Query Azure Cosmos DB Gremlin API by using Gremlin

L’API Gremlin d’Azure Cosmos DB prend en charge les requêtes Gremlin.The Azure Cosmos DB Gremlin API supports Gremlin queries. Cet article fournit des exemples de documents et de requêtes pour vous aider à démarrer.This article provides sample documents and queries to get you started. L’article relatif à la prise en charge de Gremlin comporte des informations de référence détaillées sur Gremlin.A detailed Gremlin reference is provided in the Gremlin support article.

Cet article décrit les tâches suivantes :This article covers the following tasks:

  • Interrogation des données avec GremlinQuerying data with Gremlin

PrérequisPrerequisites

Pour le bon fonctionnement de ces requêtes, vous devez disposer d’un compte Azure Cosmos DB et de données de graphique dans le conteneur.For these queries to work, you must have an Azure Cosmos DB account and have graph data in the container. Cela n’est pas le cas ?Don't have any of those? Lancez le démarrage rapide de 5 minutes ou le tutoriel destiné aux développeurs pour créer un compte et alimenter votre base de données.Complete the 5-minute quickstart or the developer tutorial to create an account and populate your database. Vous pouvez exécuter les requêtes suivantes avec la console Gremlin ou avec votre pilote Gremlin favori.You can run the following queries using the Gremlin console, or your favorite Gremlin driver.

Compter le nombre de vertex du graphiqueCount vertices in the graph

L’extrait de code suivant montre comment compter le nombre de vertex du graphique :The following snippet shows how to count the number of vertices in the graph:

g.V().count()

FiltresFilters

Vous pouvez appliquer des filtres à l’aide des étapes has et hasLabel de Gremlin et les associer à l’aide de and, or, et not pour créer des filtres plus complexes.You can perform filters using Gremlin's has and hasLabel steps, and combine them using and, or, and not to build more complex filters. Azure Cosmos DB propose une indexation sans schéma de toutes les propriétés au sein de vos vertex et degrés pour les requêtes rapides :Azure Cosmos DB provides schema-agnostic indexing of all properties within your vertices and degrees for fast queries:

g.V().hasLabel('person').has('age', gt(40))

ProjectionProjection

Vous pouvez projeter certaines propriétés dans les résultats de requête à l’aide de l’étape values :You can project certain properties in the query results using the values step:

g.V().hasLabel('person').values('firstName')

Jusqu’ici, nous avons seulement abordé les opérateurs de requête fonctionnant dans n’importe quelle base de données.So far, we've only seen query operators that work in any database. Les graphiques sont rapides et efficaces pour les opérations de traversée lorsque vous avez besoin d’accéder aux vertex et bords associés.Graphs are fast and efficient for traversal operations when you need to navigate to related edges and vertices. Recherchons à présent tous les amis de Thomas.Let's find all friends of Thomas. Nous suivons pour cela l’étape outE de Gremlin pour rechercher toutes les bords externes de Thomas afin de se diriger vers les vertex internes de ces bords en suivant l’étape inV de Gremlin :We do this by using Gremlin's outE step to find all the out-edges from Thomas, then traversing to the in-vertices from those edges using Gremlin's inV step:

g.V('thomas').outE('knows').inV().hasLabel('person')

La requête suivante effectue deux sauts pour rechercher tous les « amis des amis de Thomas », en appelant outE et inV deux fois.The next query performs two hops to find all of Thomas' "friends of friends", by calling outE and inV two times.

g.V('thomas').outE('knows').inV().hasLabel('person').outE('knows').inV().hasLabel('person')

Vous pouvez créer des requêtes plus complexes et implémenter une logique de traversée de graphique puissante à l’aide de Gremlin, y compris en mixant des expressions de filtre, en exécutant des boucles à l’aide de l’étape loop et en mettant en œuvre la navigation conditionnelle à l’aide de l’étape choose.You can build more complex queries and implement powerful graph traversal logic using Gremlin, including mixing filter expressions, performing looping using the loop step, and implementing conditional navigation using the choose step. En savoir plus sur ce que la prise en charge de Gremlin vous permet de faire !Learn more about what you can do with Gremlin support!

Étapes suivantesNext steps

Dans ce tutoriel, vous avez :In this tutorial, you've done the following:

  • Effectuer des interrogations à l’aide de GraphLearned how to query using Graph

Vous pouvez maintenant passer à la section Concepts pour plus d’informations sur Cosmos DB.You can now proceed to the Concepts section for more information about Cosmos DB.