NEO4J
Используемое ПО
Установка
Установка
Установка
Запуск
Начальный экран
Типовой ввод кода в Neo4j
Типовой ввод кода в Neo4j
Типовой ввод кода в Neo4j
Основные команды. Создание нода
Основные команды. Добавление параметров в узел
Основные команды. Удаление нодов
Основные команды. Синтаксические привязки
Основные команды. Поиск параметров и узлов
Основные команды. Поиск параметров и узлов
Основные команды. Поиск параметров и узлов
Основные команды. Поиск параметров и узлов
Основные команды. Поиск параметров и узлов
Основные команды. Удаление параметров
Основные команды. Оператор объединения AND
Основные команды. Удаление параметров
Основные команды. Удаление параметров нода
Основные команды. Удаление параметров ребра
Основные команды. Добавление параметров к очищенному узлу
623.39K

Neo4j

1. NEO4J

Основы
Подготовил:
Доцент кафедры ИП
ИПТИТ РТУ МИРЭА
Лоскутов Иван Андреевич
Москва, 2025
1

2. Используемое ПО

• Java
https://www.java.com/ru/download/
• Java JDK21
https://www.oracle.com/java/technol
ogies/downloads/#jdk21-windows
• Neo4j 5.22.0
http://dist.neo4j.org/neo4jcommunity-5.22.0-windows.zip
2

3. Установка

• Установка папки с neo4j в диск С, не на рабочий стол!
• Neo4j при установке необходимо прописать в системе:
Вводим: SystemPropertiesAdvanced.exe
3

4. Установка

4

5. Установка

Прописываем прямую загрузку Neo4j через PowerShell
Вводим: Set-ExecutionPolicy RemoteSigned
5

6. Запуск

6

7. Начальный экран

7

8. Типовой ввод кода в Neo4j

MATCH (p:Person {name: 'Ali', from:'Tver'})[f:FRIENDS {since: 2020}]->(friend) RETURN p, f, friend
"MATCH" - функциональная команда "найти"
"(p:Person {name: 'Alice'}) " - нода / узел, в круглых скобках:
"p" - выбранная "временная" переменная
"Person" - лейбл ноды
"{ }" - параметры связи / узла "name" и "from"
":" - двоеточие, присвоении значений параметрам "name" и "from"
8

9. Типовой ввод кода в Neo4j

MATCH (p:Person {name: 'Ali', from:'Tver'})[f:FRIENDS {since: 2020}]->(friend) RETURN p, f, friend
"[ ]" – связь, т.е. то, что характеризует объект, обозначается
квадратными скобками. В нашем случае - [f:FRIENDS], где:
"f", как и "p" - выбранная "временная" переменная
":FRIENDS {since: 2020}" - рёво / ребро. Она описывает формируемую
связь. Для данной связи всегда нужно ставить":" - двоеточие
{since: 2020} - параметры связи, в котором прописано, что значение
FRIENDS было достигнуто начиная ("since") с 2020.
9

10. Типовой ввод кода в Neo4j

MATCH (p:Person {name: 'Ali', from:'Tver'})[f:FRIENDS {since: 2020}]->(friend) RETURN p, f, friend
"-" блоковая связь, исходящая от изначального нода: "})-[f:".
Поясняется, что это направление связи, которое исходит от узла слева.
"->" - стрелка, исходящая от ребра. Обозначает, что связь (ребро)
предназначено для левого узла, потому указывает на него
"friend": узел без конкретных свойств или меток
RETURN - функциональная команда "вернуть"
p, f, friend - ссылки на соответствующие параметры.
10

11. Основные команды. Создание нода

2 варианта:
а) построчно:
CREATE (u1:Person {name: "Evgeny", from: "Krasnodar"})
CREATE (u2:Person {name: "Alisa", gender: 'female'}})
б) однострочно:
CREATE (u1:Person {name: "Evgeny", from: "Krasnodar"}),
(u2:Person {name: "Alisa", gender: 'female'})
В примере указано, что для узлов нет необходимости указывать всю
информацию. При ее отсутствие созданию узла ничего не повредит. 11

12. Основные команды. Добавление параметров в узел

MATCH (p:Person {name: "Evgeny"})
set p.id=0.
В коде мы отправили запрос в БД с целью идентифицировать лейбл
нода Person, с именем (name) "Evgeny"
С помощью функции "set" можно или обновить свойства узлов / ребер
или же добавить новые параметры, как мы это сделали с "id".
Таким образом мы добавляем дополнительный параметр "id" в
"Evgeny" и присваиваем ему значение, равно "0".
12

13. Основные команды. Удаление нодов

MATCH (n)
Where id(n) = 3
Detach delete n
В данном коде мы реализуем следующие действия: поиск некоторого
параметра "n" (по сути он присваивается всем параметрам, поскольку
сразу не задан).
Далее мы конкретизируем: привязываем "n" к параметру "id" и
указываем его значение для поиска. В нашем случае, это "3".
Оператор "WHERE" применяется для фильтрации.
13

14. Основные команды. Синтаксические привязки

Для Neo4j нет разницы, как записывать команды: результат будет
одинаковым, однако важно учитывать синтаксис привязок:
знак "," - запятая,
операторы:
- "WITH",
- "OPTIONAL MATCH",
- "UNION",
- "UNION ALL"
- "CALL".
14

15. Основные команды. Поиск параметров и узлов

MATCH – «найти», применяется для различных случаев, среди
которых поиск может вестись по разным вариантам:
1) по метке:
MATCH (e:Person)
RETURN e
Как уже видно, поиск происходит по лейблу ноды "Person"
15

16. Основные команды. Поиск параметров и узлов

2) по свойствам:
MATCH (e:Person {name: 'Ali'})
RETURN e
Данный код ищет в лейбле ноды "Person" по "name" соответствие с
именем "Ali". Однако, может быть ситуация, когда изначальный
параметр не уникален. В таком случае нужно осуществить поиск по
большему количеству параметров:
MATCH (e:Person {name: 'Ali', from: 'Tver'})
RETURN e
16

17. Основные команды. Поиск параметров и узлов

3) По условию "WHERE"
Создадим несколько нодов
CREATE (u1:Person {name: "Alexander", from: "Kaliningrad", age: "30"})
CREATE (u2:Person {name: "Axel", from: "Kirov", age: "20"})
CREATE (u3:Person {name: "Amber", from: "Sarov", age: "18"})
Далее реализуем поиск по параметру
MATCH (e:Person)
WHERE e.age > 25
RETURN e
Функция ищет по лейблу нода "Person" параметр "age", который будет
больше заданного, т.е. "25". В результате - выведен узел "Alexander"
17

18. Основные команды. Поиск параметров и узлов

4) По идентификатору нода:
MATCH (n)
WHERE id(n) = 123
RETURN n
Логика аналогична разделу "удаление нодов"
18

19. Основные команды. Поиск параметров и узлов

5) По связи
MATCH (p:Person)-[:FRIEND]->(friend)
WHERE p.name = 'Ali'
RETURN friend
В данном случае реализуется поиск с учетом связи. Как видно, имеется
некоторая связь между лейблом нода "Person" и "friend". Наша задача
найти в "Person" такой параметр, который будет содержать в себе имя
'Ali'.
19

20. Основные команды. Удаление параметров

1) Удаление параметра из узла:
MATCH (n:Person)
WHERE n.name = 'Ivan '
REMOVE n.age
Эта команда удалит параметр «age» из нода «Ivan»
20

21. Основные команды. Оператор объединения AND

Оператор используется для объединения разных элементов запроса,
которые необходимо выполнить одновременно. Зачастую используется
с “WHERE”, применим к логическим операциям.
MATCH (p:Person)
WHERE p.age > 30 AND p.name = 'Ali' AND p.city = 'Moscow'
RETURN p
Эта команда найдет нод с параметром «age» равным 30, «name» - «Ali»
и «city» - Moscow.
21

22. Основные команды. Удаление параметров

2) Удаление параметра из отношения:
MATCH (a:Person)-[r:KNOWS]->(b:Person)
WHERE a.name = ‘Ivan' AND b.name = ‘Petya'
REMOVE r.since
Эта команда удалит параметр «since» из ребра «KNOWS»
22

23. Основные команды. Удаление параметров нода

3) Удаление, она же «очистка» параметров – аналогична замене
параметров, но работает сразу на группу:
MATCH (n:People)
WHERE n.name = "Ali"
SET n = {}
Эта команда удалит абсолютно
все параметры из нода «Ali»
23

24. Основные команды. Удаление параметров ребра

3) Добавим свойство связи:
MATCH (p:People)-[z:friend]->(e:People)
WHERE p.name = 'Ali' AND e.name = 'Vasya'
set z.since='2020'
А теперь удалим его:
MATCH (p:People)-[z:friend]->(e:People)
WHERE p.name = 'Ali' AND e.name = 'Vasya'
set z ={}
Таким образом параметр «since» равный «2020» и иные свойства
«friend» были удалены
24

25. Основные команды. Добавление параметров к очищенному узлу

3) После выполнения полной очистки, нод, как таковой, останется, и
его единственным параметром станет <id> (графовый вид) / «identity»
(табличный вид). Для добавления параметров потребуется ввести:
MATCH (n)
Where id(n) = 2
set n.name='Ali'
return n
В результате у нода будет добавлено свойство «name» равное «Ali»
25
English     Русский Правила