Бөлісу құралы:


Руководство по запросу Azure Cosmos DB для Gremlin с помощью Gremlin

Область применения: Гремлин

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

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

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

Необходимые компоненты

Чтобы такие запросы работали, у вас должна быть учетная запись базы данных Azure Cosmos DB и данные графа в контейнере. У вас их нет? Выполните инструкции из 5-минутного краткого руководства, чтобы создать учетную запись и заполнить базу данных. Вы можете выполнять следующие запросы с помощью консоли 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('name')

Пока мы видели только операторы запросов, которые работают в любой базе данных. Графы способны быстро и эффективно выполнять операции обхода, когда вам необходимо перейти к связанным ребрам и вершинам. Давайте найдем всех друзей Томаса. Мы сделаем это с помощью шага 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.

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