Руководство. Выполнение запросов к API Gremlin в Azure Cosmos DB с использованием Gremlin

ПРИМЕНИМО К: API Gremlin

API Gremlin базы данных Azure Cosmos DB позволяет выполнять запросы Gremlin. В этой статье приведены примеры документов и запросов, которые помогут вам начать работу. Подробная справка по Gremlin содержится в этой статье.

В этой статье рассматриваются следующие задачи:

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

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

Чтобы такие запросы работали, у вас должна быть учетная запись базы данных Azure Cosmos DB и данные графа в контейнере. У вас их нет? Завершите краткое руководство или руководство разработчика, чтобы создать учетную запись и заполнить базу данных. Вы можете выполнять следующие запросы с помощью консоли Gremlin или предпочитаемого драйвера Gremlin.

Подсчет вершин в графе

В следующем фрагменте показано, как подсчитать количество вершин в графе:

g.V().count()

фильтры;

Вы можете выполнять фильтрацию с помощью шагов Gremlin has и hasLabel, а также объединять их с помощью операторов and, or и not для создания более сложных фильтров. База данных Azure Cosmos DB предоставляет схемонезависимое индексирование всех свойств в ваших вершинах и степенях для быстрого выполнения запросов:

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

Прогнозирование

Вы можете проецировать некоторые свойства в результатах запроса с помощью шага values:

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

Пока мы видели только операторы запросов, которые работают в любой базе данных. Графы способны быстро и эффективно выполнять операции обхода, когда вам необходимо перейти к связанным ребрам и вершинам. Давайте найдем всех друзей Томаса. Мы сделаем это с помощью шага Gremlin outE, чтобы найти все исходящие от Томаса ребра, а затем переместимся к вершинам исходящих ребер с помощью шага Gremlin inV:

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

Следующий запрос выполняет два прыжка, чтобы найти всех друзей друзей Томаса, вызвав outE и inV два раза.

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

Вы можете создавать более сложные запросы и внедрять эффективную логику обхода графа с помощью Gremlin, включая сочетание выражений фильтров, выполнение цикла с помощью шага loop и реализацию условной навигации с помощью шага choose. Дополнительные сведения о возможностях, допустимых благодаря поддержке Gremlin, см. в этой статье.

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

В этом руководстве вы выполнили следующее:

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

Теперь вы можете перейти к разделу ключевых концепций, чтобы получить дополнительные сведения о службе Cosmos DB.