Tutorial: Abfragen von Azure Cosmos DB for Gremlin mithilfe von Gremlin

GILT FÜR: Gremlin

Die Azure Cosmos DB-API für Gremlin unterstützt Gremlin-Abfragen. Dieser Artikel enthält Beispieldokumente und Abfragen, um Ihnen den Einstieg zu erleichtern. Eine detaillierte Gremlin-Referenz finden Sie im Artikel Azure Cosmos DB Gremlin graph support (Azure Cosmos DB: Gremlin-Graphunterstützung).

In diesem Artikel werden die folgenden Aufgaben behandelt:

  • Abfragen von Daten mit Gremlin

Voraussetzungen

Diese Abfragen können nur funktionieren, wenn Sie über ein Azure Cosmos DB-Konto verfügen und Diagrammdaten im Container vorliegen. Sie haben beides nicht? Absolvieren Sie den 5-Minuten-Schnellstart zum Erstellen eines Kontos und zum Auffüllen Ihrer Datenbank. Sie können die folgenden Abfragen ausführen, indem Sie die Gremlin-Konsole oder Ihren bevorzugten Gremlin-Treiber verwenden.

Anzahl der Scheitelpunkte im Diagramm

Der folgende Codeausschnitt zeigt, wie Sie die Anzahl der Scheitelpunkte im Diagramm zählen:

g.V().count()

Filter

Filter können Sie in den Gremlin-Schritten has und hasLabel anwenden und sie mithilfe von and, or, und not kombinieren, um komplexere Filter zu erstellen. Azure Cosmos DB bietet schemaunabhängige Indizierung aller Eigenschaften in den Scheitelpunkten und Graden für schnelle Abfragen:

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

Projektion

Sie können bestimmte Eigenschaften in den Abfrageergebnissen mit dem values-Schritt projizieren:

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

Bisher haben wir nur Abfrageoperatoren gesehen, die in jeder Datenbank funktionieren. Diagramme sind schnell und effizient bei Traversierungen, wenn Sie zu verwandten Kanten und Scheitelpunkten navigieren müssen. Wir suchen nun alle Freunde von Thomas. Hierzu suchen wir mit Schritt outE von Gremlin alle Out-Edges von Thomas und traversieren dann mit dem Gremlin-Schritt inV zu den In-Vertices dieser Kanten:

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

Die nächste Abfrage führt durch zweimaligen Aufruf von outE und inV zwei Hops aus, um alle „Freunde von Freunden“ von Thomas zu finden.

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

Mit Gremlin können Sie komplexere Abfragen erstellen und leistungsstarke Logik zur Graphdurchsuchung implementieren, einschließlich Mischen von Filterausdrücken, Ausführen von Schleifen mithilfe des loop-Schritts und Implementieren bedingter Navigation mithilfe des choose-Schritts. Erfahren Sie mehr darüber, was Sie mit Gremlin-Unterstützung tun können!

Nächste Schritte

In diesem Tutorial haben Sie die folgenden Aufgaben ausgeführt:

  • Sie haben gelernt, wie Sie Abfragen mithilfe von Graph durchführen.

Sie können jetzt mit dem Abschnitt „Konzepte“ fortfahren, um weitere Informationen zu Azure Cosmos DB zu erhalten.