Руководство. Выполнение запросов к API Gremlin в Azure Cosmos DB с использованием Gremlin{1}Tutorial: Query Azure Cosmos DB Gremlin API by using Gremlin

API Gremlin базы данных Azure Cosmos DB позволяет выполнять запросы Gremlin.The Azure Cosmos DB Gremlin API supports Gremlin queries. В этой статье приведены примеры документов и запросов, которые помогут вам начать работу.This article provides sample documents and queries to get you started. Подробная справка по Gremlin содержится в этой статье.A detailed Gremlin reference is provided in the Gremlin support article.

В этой статье рассматриваются следующие задачи:This article covers the following tasks:

  • Выполнение запросов к данным с помощью Gremlin.Querying data with Gremlin

предварительные требованияPrerequisites

Чтобы такие запросы работали, у вас должна быть учетная запись базы данных Azure Cosmos DB и данные графа в контейнере.For these queries to work, you must have an Azure Cosmos DB account and have graph data in the container. У вас их нет?Don't have any of those? Завершите краткое руководство или руководство разработчика, чтобы создать учетную запись и заполнить базу данных.Complete the 5-minute quickstart or the developer tutorial to create an account and populate your database. Вы можете выполнять следующие запросы с помощью консоли Gremlin или предпочитаемого драйвера Gremlin.You can run the following queries using the Gremlin console, or your favorite Gremlin driver.

Подсчет вершин в графеCount vertices in the graph

В следующем фрагменте показано, как подсчитать количество вершин в графе:The following snippet shows how to count the number of vertices in the graph:

g.V().count()

ФильтрыFilters

Вы можете выполнять фильтрацию с помощью шагов Gremlin has и hasLabel, а также объединять их с помощью операторов and, or и not для создания более сложных фильтров.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 предоставляет схемонезависимое индексирование всех свойств в ваших вершинах и степенях для быстрого выполнения запросов: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))

ПроекцияProjection

Вы можете проецировать некоторые свойства в результатах запроса с помощью шага values:You can project certain properties in the query results using the values step:

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

Пока мы видели только операторы запросов, которые работают в любой базе данных.So far, we've only seen query operators that work in any database. Графы способны быстро и эффективно выполнять операции обхода, когда вам необходимо перейти к связанным ребрам и вершинам.Graphs are fast and efficient for traversal operations when you need to navigate to related edges and vertices. Давайте найдем всех друзей Томаса.Let's find all friends of Thomas. Мы сделаем это с помощью шага Gremlin outE, чтобы найти все исходящие от Томаса ребра, а затем переместимся к вершинам исходящих ребер с помощью шага Gremlin inV: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')

Следующий запрос выполняет два прыжка, чтобы найти всех друзей друзей Томаса, вызвав outE и inV два раза.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')

Вы можете создавать более сложные запросы и внедрять эффективную логику обхода графа с помощью Gremlin, включая сочетание выражений фильтров, выполнение цикла с помощью шага loop и реализацию условной навигации с помощью шага 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. Дополнительные сведения о возможностях, допустимых благодаря поддержке Gremlin, см. в этой статье.Learn more about what you can do with Gremlin support!

Дальнейшие действияNext steps

В этом руководстве вы выполнили следующее:In this tutorial, you've done the following:

  • Вы научились выполнять запросы с помощью Graph.Learned how to query using Graph

Теперь вы можете перейти к разделу ключевых концепций, чтобы получить дополнительные сведения о службе Cosmos DB.You can now proceed to the Concepts section for more information about Cosmos DB.