Функции работы с картами

В AGE карта — это структура данных, хранящая набор пар «ключ–значение». Каждый ключ в карте уникален и связан со своим значением. Эта структура аналогична словарю в Python или объекту в JavaScript и обеспечивает эффективную организацию и поиск данных по ключу. В этом разделе описаны функции для создания и обработки карт.

vertex_stats()

Функция vertex_stats() извлекает метаданные вершины. При передаче вершины в vertex_stats() она возвращает структурированную карту со следующими парами «ключ–значение»:

  • id: Уникальный идентификатор вершины.
  • label: Метка или тип, используемый для классификации вершины.
  • in_degree: Количество входящих рёбер, направленных к вершине.
  • out_degree: Количество исходящих рёбер, исходящих из вершины.
  • self_loops: Количество петель (рёбер, начинающихся и заканчивающихся в одной вершине), связанных с вершиной.

Синтаксис: vertex_stats(vertex)

Подготовка данных

-- Создание графа.
SELECT create_graph('vertex_stats_graph');

-- Создание вершин и рёбер.
SELECT * FROM cypher('vertex_stats_graph', $$
CREATE (:Person {name: 'John Donne'})-[:WROTE]->(:Poem {title: 'Holy Sonnet XIV'})
$$) AS (a agtype);

Запрос

SELECT * FROM cypher('vertex_stats_graph', $$
MATCH (v:Poem {title: 'Holy Sonnet XIV'})
RETURN vertex_stats(v)
$$) AS (vertex_stats agtype);

Результат

vertex_stats
{"id": 1407374883553281, "label": "Poem", "in_degree": 1, "out_degree": 0, "self_loops": 0}

Извлечение значений

Отдельные значения из полученной карты можно извлечь с помощью нотации индексирования: vertex_stats(vertex)["key"].