Начало работы
Подключение
Тесты производительности
Развёртывание
Использование данных
Загрузка данных
Миграция данных
Запрос данных
Управление кластерами
Обновление
Глобальное обслуживание
Масштабирование
Мониторинг
Безопасность
Лучшие практики
Технические принципы
Типы данных
Хранилище
Исполняющий движок
Потоковая обработка (Domino)
MARS3 Индексы
Расширения
Расширенные функции
Расширенный запрос
Федеративные запросы
Grafana
Резервное копирование и восстановление
Аварийное восстановление
Графовая база данных
Введение
Предложения
Функции
Расширенные темы
Руководство
Настройка производительности
Устранение неполадок
Инструменты
Параметры конфигурации
SQL-команда
Часто задаваемые вопросы
SELECT * FROM cypher('graph_name', $$
CREATE (A:Person {name: 'Alice', age: 38, eyes: 'brown'}),(B:Person {name: 'Bob', age: 25, eyes: 'blue'}),
(C:Person {name: 'Charlie', age: 53, eyes: 'green'}),
(D:Person {name: 'Daniel', age: 54, eyes: 'brown'}),
(E:Person {name: 'Eskil', age: 41, eyes: 'blue', array: ['one', 'two', 'three']}),
(A)-[:KNOWS]->(B),
(A)-[:KNOWS]->(C),
(B)-[:KNOWS]->(D),
(C)-[:KNOWS]->(D),
(B)-[:KNOWS]->(E)
$$) as (result agtype);
keys()Функция keys() возвращает список строк, содержащий имена свойств вершины, ребра или карты.
Синтаксис: keys(expression)
Возвращаемое значение:
Список типа agtype, содержащий строковые элементы.
Параметры:
| Имя | Описание |
|---|---|
expression |
Выражение, возвращающее вершину, ребро или карту. |
Примечания:
keys(null) возвращает null.Запрос:
SELECT * FROM cypher('graph_name', $$
MATCH (a)
WHERE a.name = 'Alice'
RETURN keys(a)
$$) as (result agtype);
Возвращает список всех имён свойств вершины, привязанной к переменной a.
Результат:
| result |
|---|
| ["age", "eyes", "name"] |
| 1 строка |
range()Функция range() возвращает список целочисленных значений в диапазоне от начального значения start до конечного значения end, где разница между любыми двумя последовательными значениями — step — постоянна (то есть арифметическая прогрессия). Диапазон включает оба конца: последовательность всегда содержит start, а end включается в зависимости от значений start, step и end.
Синтаксис: range(start, end [, step])
Возвращаемое значение:
Список типа agtype, содержащий целочисленные элементы.
Параметры:
| Имя | Описание |
|---|---|
start |
Выражение, возвращающее целочисленное значение. |
end |
Выражение, возвращающее целочисленное значение. |
step |
Числовое выражение, определяющее постоянную разницу между последовательными значениями; по умолчанию 1. |
Запрос:
SELECT *
FROM cypher('graph_name', $$
RETURN range(0, 10), range(2, 18, 3)
$$) as (no_step agtype, step agtype);
Возвращает два списка целых чисел для указанных диапазонов.
Результат:
| no_step | step |
|---|---|
| [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] | [2, 5, 8, 11, 14, 17] |
| 1 строка |
labels()Функция labels() возвращает список строк, содержащий метки вершины.
Синтаксис: labels(vertex)
Возвращаемое значение:
Список типа agtype, содержащий строковые элементы.
Параметры:
| Имя | Описание |
|---|---|
vertex |
Выражение, возвращающее одну вершину. |
Примечания:
labels(null) возвращает null.Запрос:
SELECT *
FROM cypher('graph_name', $$
MATCH (a)
WHERE a.name = 'Alice'
RETURN labels(a)
$$) as (edges agtype);
Возвращает список всех меток, присвоенных вершине, привязанной к переменной a.
Результат:
| edges |
|---|
| ["Person"] |
| 1 строка |
nodes()Функция nodes() возвращает список всех вершин в пути.
Синтаксис: nodes(path)
Возвращаемое значение:
Список типа agtype, содержащий сущности вершин.
Параметры:
| Имя | Описание |
|---|---|
path |
Выражение, возвращающее путь типа agtype. |
Примечания:
nodes(null) возвращает null.Запрос:
SELECT *
FROM cypher('graph_name', $$
MATCH p = (a)-[]->(b)-[]->(c)
WHERE a.name = 'Alice' AND c.name = 'Eskil'
RETURN nodes(p)
$$) as (vertices agtype);
Возвращает список всех вершин в пути p.
Результат:
| vertices |
|---|
| [{"id": 844424930131969, "label": "Person", "properties": {"age": 38, "eyes": "brown", "name": "Alice"}}::vertex, {"id": 844424930131970, "label": "Person", "properties": {"age": 25, "eyes": "blue", "name": "Bob"}}::vertex, {"id": 844424930131973, "label": "Person", "properties": {"age": 41, "eyes": "blue", "name": "Eskil", "array": ["one", "two", "three"]}}::vertex] |
| 1 строка |
relationships()Функция relationships() возвращает список всех рёбер в пути.
Синтаксис: relationships(path)
Возвращаемое значение:
Список типа agtype, содержащий сущности рёбер.
Параметры:
| Имя | Описание |
|---|---|
path |
Выражение, возвращающее путь типа agtype. |
Примечания:
relationships(null) возвращает null.Запрос:
SELECT *
FROM cypher('graph_name', $$
MATCH p = (a)-[]->(b)-[]->(c)
WHERE a.name = 'Alice' AND c.name = 'Eskil'
RETURN relationships(p)
$$) as (edges agtype);
Возвращает список всех рёбер в пути p.
Результат:
| edges |
|---|
| [{"id": 1125899906842640, "label": "KNOWS", "end_id": 844424930131989, "start_id": 844424930131988, "properties": {}}::edge, {"id": 1125899906842644, "label": "KNOWS", "end_id": 844424930131992, "start_id": 844424930131989, "properties": {}}::edge] |
| 1 строка |
toBooleanList()Функция toBooleanList() преобразует список значений в список логических значений и возвращает его. Если какое-либо входное значение невозможно преобразовать в логическое, соответствующий элемент выходного списка равен null.
Синтаксис: toBooleanList(list)
Возвращаемое значение:
Список типа agtype, содержащий преобразованные элементы; каждый элемент — либо логическое значение, либо `null`, в зависимости от входного значения.
Примечания:
null во входном списке сохраняются как null.list равен null, функция возвращает null.Запрос:
SELECT * FROM cypher('graph_name', $$RETURN toBooleanList(["true", "false", "true"])
$$) AS (toBooleanList agtype);
Результат:
| toBooleanList |
|---|
| [true, false, true] |
| 1 строка |