Учебники

Neo4j — Краткое руководство

Neo4j — Обзор

Neo4j является ведущей в мире графической базой данных с открытым исходным кодом, которая разработана с использованием технологии Java. Он легко масштабируется и не содержит схем (NoSQL).

Что такое база данных графиков?

Граф представляет собой графическое представление набора объектов, где некоторые пары объектов связаны ссылками. Он состоит из двух элементов — узлов (вершин) и отношений (ребер).

База данных графиков — это база данных, используемая для моделирования данных в форме графиков. Здесь узлы графа изображают сущности, в то время как отношения изображают ассоциацию этих узлов.

Популярные базы данных графиков

Neo4j — это популярная графическая база данных. Другими базами данных Graph являются Oracle NoSQL Database, OrientDB, HypherGraphDB, GraphBase, InfiniteGraph и AllegroGraph.

Почему граф базы данных?

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

Реляционные базы данных хранят высокоструктурированные данные, в которых есть несколько записей, в которых хранятся данные одного и того же типа, поэтому они могут использоваться для хранения структурированных данных и не хранят связи между данными.

В отличие от других баз данных, графовые базы данных хранят отношения и соединения как первоклассные объекты.

Модель данных для графовых баз данных проще по сравнению с другими базами данных, и их можно использовать с системами OLTP. Они предоставляют такие функции, как целостность транзакций и эксплуатационная доступность.

СУБД против графической базы данных

Ниже приведена таблица, в которой сравниваются реляционные базы данных и базы данных Graph.

Sr.No RDBMS База данных графиков
1 таблицы диаграммы
2 Ряды Вершины
3 Столбцы и данные Свойства и его значения
4 Ограничения Отношения
5 присоединяется пересечение

Преимущества Neo4j

Ниже приведены преимущества Neo4j.

  • Гибкая модель данных — Neo4j предоставляет гибкую простую и вместе с тем мощную модель данных, которую можно легко изменять в зависимости от приложений и отраслей.

  • Анализ в реальном времени — Neo4j предоставляет результаты на основе данных в реальном времени.

  • Высокая доступность — Neo4j отлично доступен для крупных корпоративных приложений реального времени с транзакционными гарантиями.

  • Связанные и полуструктурированные данные. Используя Neo4j, вы можете легко представлять связанные и полуструктурированные данные.

  • Простой поиск — Используя Neo4j, вы можете не только представлять, но и легко извлекать (перемещаться / перемещаться) связанные данные быстрее по сравнению с другими базами данных.

  • Язык запросов Cypher — Neo4j предоставляет декларативный язык запросов для визуального представления графика с использованием синтаксиса ascii-art. Команды этого языка в удобочитаемом формате и очень просты в освоении.

  • Нет объединений — используя Neo4j, он НЕ требует сложных объединений для извлечения связанных / связанных данных, так как очень легко получить сведения о соседнем узле или взаимосвязи без объединений или индексов.

Гибкая модель данных — Neo4j предоставляет гибкую простую и вместе с тем мощную модель данных, которую можно легко изменять в зависимости от приложений и отраслей.

Анализ в реальном времени — Neo4j предоставляет результаты на основе данных в реальном времени.

Высокая доступность — Neo4j отлично доступен для крупных корпоративных приложений реального времени с транзакционными гарантиями.

Связанные и полуструктурированные данные. Используя Neo4j, вы можете легко представлять связанные и полуструктурированные данные.

Простой поиск — Используя Neo4j, вы можете не только представлять, но и легко извлекать (перемещаться / перемещаться) связанные данные быстрее по сравнению с другими базами данных.

Язык запросов Cypher — Neo4j предоставляет декларативный язык запросов для визуального представления графика с использованием синтаксиса ascii-art. Команды этого языка в удобочитаемом формате и очень просты в освоении.

Нет объединений — используя Neo4j, он НЕ требует сложных объединений для извлечения связанных / связанных данных, так как очень легко получить сведения о соседнем узле или взаимосвязи без объединений или индексов.

Особенности Neo4j

Ниже приведены заметные особенности Neo4j —

  • Модель данных (гибкая схема) — Neo4j следует модели данных, называемой моделью графа собственных свойств. Здесь граф содержит узлы (сущности), и эти узлы связаны друг с другом (изображены отношениями). Узлы и отношения хранят данные в парах ключ-значение, известных как свойства.

    В Neo4j нет необходимости следовать фиксированной схеме. Вы можете добавить или удалить свойства согласно требованию. Это также обеспечивает ограничения схемы.

  • Свойства ACID — Neo4j поддерживает полные правила ACID (атомарность, согласованность, изоляция и долговечность).

  • Масштабируемость и надежность. Вы можете масштабировать базу данных, увеличивая количество операций чтения / записи и объем, не влияя на скорость обработки запросов и целостность данных. Neo4j также обеспечивает поддержку репликации для обеспечения безопасности и надежности данных.

  • Cypher Query Language — Neo4j предоставляет мощный декларативный язык запросов, известный как Cypher. Он использует ASCII-арт для изображения графиков. Cypher прост в освоении и может быть использован для создания и извлечения отношений между данными без использования сложных запросов, таких как Joins.

  • Встроенное веб-приложение — Neo4j предоставляет встроенное веб-приложение Neo4j Browser . Используя это, вы можете создавать и запрашивать данные графика.

  • Драйверы — Neo4j может работать с —

    • REST API для работы с такими языками программирования, как Java, Spring, Scala и т. Д.

    • Java Script для работы с пользовательскими интерфейсами MVC, такими как Node JS.

    • Он поддерживает два вида Java API: Cypher API и Native Java API для разработки приложений Java. В дополнение к этому вы также можете работать с другими базами данных, такими как MongoDB, Cassandra и т. Д.

  • Индексирование — Neo4j поддерживает Индексы с помощью Apache Lucence.

Модель данных (гибкая схема) — Neo4j следует модели данных, называемой моделью графа собственных свойств. Здесь граф содержит узлы (сущности), и эти узлы связаны друг с другом (изображены отношениями). Узлы и отношения хранят данные в парах ключ-значение, известных как свойства.

В Neo4j нет необходимости следовать фиксированной схеме. Вы можете добавить или удалить свойства согласно требованию. Это также обеспечивает ограничения схемы.

Свойства ACID — Neo4j поддерживает полные правила ACID (атомарность, согласованность, изоляция и долговечность).

Масштабируемость и надежность. Вы можете масштабировать базу данных, увеличивая количество операций чтения / записи и объем, не влияя на скорость обработки запросов и целостность данных. Neo4j также обеспечивает поддержку репликации для обеспечения безопасности и надежности данных.

Cypher Query Language — Neo4j предоставляет мощный декларативный язык запросов, известный как Cypher. Он использует ASCII-арт для изображения графиков. Cypher прост в освоении и может быть использован для создания и извлечения отношений между данными без использования сложных запросов, таких как Joins.

Встроенное веб-приложение — Neo4j предоставляет встроенное веб-приложение Neo4j Browser . Используя это, вы можете создавать и запрашивать данные графика.

Драйверы — Neo4j может работать с —

REST API для работы с такими языками программирования, как Java, Spring, Scala и т. Д.

Java Script для работы с пользовательскими интерфейсами MVC, такими как Node JS.

Он поддерживает два вида Java API: Cypher API и Native Java API для разработки приложений Java. В дополнение к этому вы также можете работать с другими базами данных, такими как MongoDB, Cassandra и т. Д.

Индексирование — Neo4j поддерживает Индексы с помощью Apache Lucence.

Neo4j — модель данных

Модель данных Neo4j Property Graph

Neo4j Graph Database использует модель графа свойств для хранения и управления своими данными.

Ниже приведены ключевые особенности модели графа свойств —

  • Модель представляет данные в узлах, отношениях и свойствах

  • Свойства являются парами ключ-значение

  • Узлы представлены с помощью круга, а отношения представлены с помощью клавиш со стрелками

  • Отношения имеют направления: однонаправленные и двунаправленные

  • Каждое отношение содержит «Начальный узел» или «От узла» и «До узла» или «Конечный узел»

  • И Узлы и Отношения содержат свойства

  • Отношения связывает узлы

Модель представляет данные в узлах, отношениях и свойствах

Свойства являются парами ключ-значение

Узлы представлены с помощью круга, а отношения представлены с помощью клавиш со стрелками

Отношения имеют направления: однонаправленные и двунаправленные

Каждое отношение содержит «Начальный узел» или «От узла» и «До узла» или «Конечный узел»

И Узлы и Отношения содержат свойства

Отношения связывает узлы

В модели данных графа свойств отношения должны быть направленными. Если мы попытаемся создать отношения без направления, то будет выдано сообщение об ошибке.

В Neo4j отношения также должны быть направленными. Если мы попытаемся создать отношения без направления, Neo4j выдаст сообщение об ошибке, в котором говорится, что «отношения должны быть направленными».

Neo4j Graph Database хранит все свои данные в узлах и отношениях. Нам не нужна ни дополнительная база данных RRBMS, ни база данных SQL для хранения данных базы данных Neo4j. Он хранит свои данные в виде графиков в своем родном формате.

Neo4j использует Native GPE (Graph Processing Engine) для работы с форматом хранения Native Graph.

Основными строительными блоками модели данных Graph DB являются —

  • Вершины
  • Отношения
  • свойства

Ниже приведен простой пример графа свойств.

График свойств

Здесь мы представили узлы, используя круги. Отношения представлены стрелками. Отношения являются направленными. Мы можем представить данные узла в терминах свойств (пары ключ-значение). В этом примере мы представили свойство Id каждого узла в круге узла.

Neo4j — настройка среды

В этой главе мы обсудим, как установить Neo4j в вашу систему, используя exe-файл.

Настройка сервера базы данных Neo4j с помощью exe-файла Windows

Следуйте инструкциям ниже, чтобы загрузить Neo4j в вашу систему.

Шаг 1 — Посетите официальный сайт Neo4j, используя https://neo4j.com/ . При нажатии на эту ссылку вы попадете на домашнюю страницу сайта neo4j.

Домашняя страница

Шаг 2 — Как показано на скриншоте выше, на этой странице справа вверху есть кнопка «Загрузить». Нажмите на это.

Шаг 3 — Это перенаправит вас на страницу загрузок, где вы можете скачать версию для сообщества и корпоративную версию Neo4j. Загрузите версию программного обеспечения для сообщества, нажав соответствующую кнопку.

Страница загрузки

Шаг 4 — Вы перейдете на страницу, где вы можете скачать версию программного обеспечения Neo4j для сообщества, совместимую с различными операционными системами. Загрузите файл, соответствующий желаемой операционной системе.

Соответствующая операционная система

Это позволит загрузить файл с именем neo4j-community_windows-x64_3_1_1.exe в вашу систему, как показано на следующем снимке экрана.

Сообщество Windows

Шаг 5 — Дважды щелкните exe-файл, чтобы установить Neo4j Server.

Exe File

Шаг 6 — Примите лицензионное соглашение и продолжите установку. После завершения процесса вы можете заметить, что Neo4j установлен в вашей системе.

Запуск сервера

Шаг 1 — Щелкните меню запуска Windows и запустите сервер Neo4j, щелкнув ярлык меню «Пуск» для Neo4j.

Стартовый сервер

Шаг 2 — Нажав на ярлык, вы получите окно для Neo4j Community Edition. По умолчанию он выбирает c: \ Users \ [имя пользователя] \ Documents \ Neo4j \ default.graphdb. Если вы хотите, вы можете изменить свой путь к другому каталогу.

кратчайший путь

Шаг 3 — Нажмите кнопку «Пуск», чтобы запустить сервер Neo4j.

Кнопка Пуск

После запуска сервера вы можете заметить, что каталог базы данных заполнен, как показано на следующем снимке экрана.

Каталог базы данных

Работа с Neo4j

Как обсуждалось в предыдущих главах, neo4j предоставляет встроенное приложение для работы с Neo4j. Вы можете получить доступ к Neo4j, используя URL-адрес http: // localhost: 7474 /

За работой

Neo4j — Строительные блоки

Neo4j Graph Database имеет следующие строительные блоки —

  • Вершины
  • свойства
  • Отношения
  • Этикетки
  • Браузер данных

Узел

Узел является фундаментальной единицей Графа. Он содержит свойства с парами ключ-значение, как показано на следующем рисунке.

Узел

Здесь Node Name = «Employee», и он содержит набор свойств в виде пар ключ-значение.

свойства

Свойство — это пара ключ-значение для описания узлов и отношений графа.

Key = Value 

Где Key — это String, а Value может быть представлено с использованием любых типов данных Neo4j.

Отношения

Отношения являются еще одним важным строительным блоком графической базы данных. Он соединяет два узла, как показано на следующем рисунке.

отношения

Здесь Emp и Dept — два разных узла. «WORKS_FOR» — это отношение между узлами Emp и Dept.

Как это означает, стрелка от Emp до Dept, это отношение описывает —

Emp WORKS_FOR Dept 

Каждое отношение содержит один начальный узел и один конечный узел.

Здесь «Emp» является начальным узлом, а «Dept» является конечным узлом.

Поскольку эта метка стрелки отношения представляет отношение между узлом «Emp» и узлом «Dept», это отношение известно как «Входящие отношения» к узлу «Dept» и «Исходящие отношения» к узлу «Emp».

Как и узлы, отношения также могут содержать свойства в виде пар ключ-значение.

свойства

Здесь отношение «WORKS_FOR» имеет одно свойство как пара ключ-значение.

Id = 123 

Он представляет собой идентификатор этих отношений.

Этикетки

Метка связывает общее имя с набором узлов или отношений. Узел или отношение могут содержать одну или несколько меток. Мы можем создавать новые метки для существующих узлов или отношений. Мы можем удалить существующие метки из существующих узлов или связей.

Из предыдущей диаграммы мы можем наблюдать, что есть два узла.

Левый боковой узел имеет метку: «Emp», а правый боковой узел имеет метку: «Dept».

Связь между этими двумя узлами также имеет метку: «WORKS_FOR».

Примечание. Neo4j хранит данные в свойствах узлов или отношений.

Neo4j Data Browser

После установки Neo4j мы можем получить доступ к Neo4j Data Browser, используя следующий URL

http://localhost:7474/browser/

Браузер данных

Neo4j Data Browser используется для выполнения команд CQL и просмотра выходных данных.

Здесь нам нужно выполнить все команды CQL по подсказке доллара: «$»

Введите команды после символа доллара и нажмите кнопку «Выполнить» для запуска команд.

Он взаимодействует с сервером базы данных Neo4j, извлекает и отображает результаты прямо под подсказкой доллара.

Используйте кнопку «VI View» для просмотра результатов в формате диаграмм. Приведенная выше диаграмма показывает результаты в формате «UI View».

Используйте кнопку «Вид сетки», чтобы просмотреть результаты в режиме сетки. Следующая диаграмма показывает те же результаты в формате «Grid View».

Вид сетки

Когда мы используем «Вид сетки» для просмотра результатов нашего запроса, мы можем экспортировать их в файл в двух разных форматах.

CSV

Нажмите кнопку «Экспорт CSV», чтобы экспортировать результаты в формате файла CSV.

CSV

JSON

Нажмите кнопку «Экспорт JSON», чтобы экспортировать результаты в формате файла JSON.

Json

Однако, если мы используем «UI View» для просмотра результатов нашего запроса, мы можем экспортировать их в файл только в одном формате: JSON

Neo4j CQL — Введение

CQL означает Cypher Query Language. Подобно тому, как Oracle Database имеет язык запросов SQL, Neo4j имеет CQL в качестве языка запросов.

Neo4j CQL

  • Является ли язык запросов для Neo4j Graph Database.
  • Это декларативный язык сопоставления с образцом.
  • Следует SQL как синтаксис.
  • Синтаксис очень прост и понятен человеку.

Как Oracle SQL

  • Neo4j CQL имеет команды для выполнения операций с базой данных.

  • Neo4j CQL поддерживает множество предложений, таких как WHERE, ORDER BY и т. Д., Для простого написания очень сложных запросов.

  • Neo4j CQL поддерживает некоторые функции, такие как String, Aggregation. В дополнение к ним, он также поддерживает некоторые функции отношений.

Neo4j CQL имеет команды для выполнения операций с базой данных.

Neo4j CQL поддерживает множество предложений, таких как WHERE, ORDER BY и т. Д., Для простого написания очень сложных запросов.

Neo4j CQL поддерживает некоторые функции, такие как String, Aggregation. В дополнение к ним, он также поддерживает некоторые функции отношений.

Neo4j CQL Статьи

Ниже приводятся пункты чтения Neo4j.

Sr.No Читать статьи использование
1 МАТЧ Это предложение используется для поиска данных с указанным шаблоном.
2 ДОПОЛНИТЕЛЬНЫЙ МАТЧ Это то же самое, что и совпадение, единственное отличие состоит в том, что он может использовать нули в случае отсутствия частей шаблона.
3 ГДЕ Этот идентификатор предложения используется для добавления содержимого в запросы CQL.
4 НАЧНИТЕ Этот пункт используется для поиска отправных точек по устаревшим индексам.
5 LOAD CSV Этот пункт используется для импорта данных из файлов CSV.

Ниже приводятся пункты записи Neo4j C ypher Query L anguage —

Sr.No Написать статью использование
1 СОЗДАЙТЕ Это предложение используется для создания узлов, отношений и свойств.
2 MERGE Этот пункт проверяет, существует ли указанный шаблон в графе. Если нет, то это создает шаблон.
3 ЗАДАВАТЬ Этот пункт используется для обновления меток на узлах, свойств на узлах и отношений.
4 УДАЛЯТЬ Этот пункт используется для удаления узлов и отношений или путей и т. Д. Из графа.
5 УДАЛИТЬ Это предложение используется для удаления свойств и элементов из узлов и отношений.
6 ДЛЯ КАЖДОГО Этот класс используется для обновления данных в списке.
7 СОЗДАТЬ УНИКАЛЬНЫЙ Используя предложения CREATE и MATCH, вы можете получить уникальный шаблон, сопоставив существующий шаблон и создав недостающий.
8 Импорт файлов CSV с помощью Cypher С помощью Load CSV вы можете импортировать данные из файлов .csv.

Ниже приведены общие положения Neo4j C ypher Query L anguage —

Sr.No Общие положения использование
1 ВЕРНУТЬ Это предложение используется для определения того, что включить в набор результатов запроса.
2 СОРТИРОВАТЬ ПО Это предложение используется для упорядочения вывода запроса по порядку. Он используется вместе с пунктами RETURN или WITH .
3 ПРЕДЕЛ Это предложение используется для ограничения строк в результате определенным значением.
4 ПРОПУСКАТЬ Это предложение используется для определения, с какой строки начинать, включая строки в выводе.
5 С Это предложение используется для объединения частей запроса.
6 РАЗМОТАТЬ Это предложение используется для расширения списка в последовательность строк.
7 UNION Этот пункт используется для объединения результатов нескольких запросов.
8 ВЫЗОВ Этот пункт используется для вызова процедуры, развернутой в базе данных.

Neo4j CQL Функции

Ниже приведены часто используемые функции Neo4j CQL —

Sr.No Функции CQL использование
1 строка Они используются для работы со строковыми литералами.
2 агрегирование Они используются для выполнения некоторых операций агрегирования результатов CQL Query.
3 отношения Они используются для получения деталей отношений, таких как начальный узел, конечный узел и т. Д.

Мы подробно обсудим все команды, предложения и предложения Neo4j CQL, их использование и примеры в следующих главах.

Neo4j CQL Типы данных

Эти типы данных похожи на язык Java. Они используются для определения свойств узла или отношения.

Neo4j CQL поддерживает следующие типы данных —

Sr.No Тип данных CQL использование
1 логический Используется для представления логических литералов: true, false.
2 байт Он используется для представления 8-битных целых чисел.
3 короткая Он используется для представления 16-битных целых чисел.
4 ИНТ Он используется для представления 32-битных целых чисел.
5 долго Он используется для представления 64-битных целых чисел.
6 поплавок Он используется для представления 32-битных чисел с плавающей точкой.
7 двойной Он используется для представления 64-битных чисел с плавающей точкой.
8 голец Используется для представления 16-битных символов.
9 строка Он используется для представления строк.

Операторы CQL

Ниже приведен список операторов, поддерживаемых языком Neo4j Cypher Query.

Sr.No Тип операторы
1 математическая +, -, *, /,%, ^
2 сравнение +, <>, <,>, <=,> =
3 логический И, ИЛИ, XOR, НЕ
4 строка +
5 Список +, IN, [X], [X… ..Y]
6 Регулярное выражение знак равно
7 Соответствие строки НАЧИНАЕТСЯ, ЗАКОНЧИВАЕТСЯ, ОГРАНИЧАЕТ

Булевы операторы в Neo4j CQL

Neo4j поддерживает следующие логические операторы для использования в предложении Neo4j CQL WHERE для поддержки нескольких условий.

Sr.No Булевы операторы Описание
1 А ТАКЖЕ Это ключевое слово Neo4j CQL для поддержки операции AND. Это как оператор SQL AND.
2 ИЛИ ЖЕ Это ключевое слово Neo4j CQL для поддержки операции OR. Это как оператор SQL AND.
3 НЕ Это ключевое слово Neo4j CQL для поддержки операции НЕ. Это как оператор SQL AND.
4 XOR Это ключевое слово Neo4j CQL для поддержки операции XOR. Это как оператор SQL AND.

Операторы сравнения в Neo4j CQL

Neo4j поддерживает следующие операторы сравнения для использования в предложении Neo4j CQL WHERE для поддержки условий.

Sr.No Булевы операторы Описание
1 знак равно Это оператор Neo4j CQL «Equal To».
2 <> Это оператор Neo4j CQL «Не равно».
3 < Это оператор Neo4j CQL «Less Than».
4 > Это оператор Neo4j CQL «Greater Than».
5 <= Это оператор Neo4j CQL «Меньше или равно».
6 > = Это оператор Neo4j CQL «Больше или равно».

Neo4j CQL — Создание узлов

Как уже говорилось, узел — это данные / запись в графовой базе данных. Вы можете создать узел в Neo4j, используя предложение CREATE . Эта глава учит вас, как —

  • Создать один узел
  • Создать несколько узлов
  • Создать узел с меткой
  • Создать узел с несколькими метками
  • Создать узел со свойствами
  • Возврат созданного узла

Создание одного узла

Вы можете создать узел в Neo4j, просто указав имя узла, который должен быть создан, вместе с предложением CREATE.

Синтаксис

Ниже приведен синтаксис для создания узла с использованием языка запросов Cypher.

CREATE (node_name); 

Примечание. Точка с запятой (;) является необязательной.

пример

Ниже приведен пример Cypher Query, который создает узел в Neo4j.

CREATE (sample) 

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j, как показано на следующем снимке экрана.

Кнопка Пуск

Шаг 2 — Откройте браузер, скопируйте и вставьте следующий URL в адресную строку http: // localhost: 7474 /. Это даст вам встроенное браузерное приложение Neo4j с подсказкой в ​​долларах, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 3 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Dollar Prompt

Результат

Выполнив, вы получите следующий результат.

Одиночный узел

верификация

Чтобы проверить создание типа узла, выполните следующий запрос в подсказке доллара.

MATCH (n) RETURN n 

Этот запрос возвращает все узлы в базе данных (мы подробно обсудим этот запрос в следующих главах).

При выполнении этот запрос показывает созданный узел, как показано на следующем снимке экрана.

Узлы в базе данных

Создание нескольких узлов

Предложение create в Neo4j CQL также используется для создания нескольких узлов одновременно. Для этого необходимо передать имена создаваемых узлов через запятую.

Синтаксис

Ниже приведен синтаксис для создания нескольких узлов с помощью предложения CREATE.

CREATE (node1),(node2)

пример

Ниже приведен пример Cypher Query, который создает несколько узлов в Neo4j.

CREATE (sample1),(sample2) 

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Желаемый запрос

Результат

Выполнив, вы получите следующий результат.

Несколько узлов

верификация

Чтобы проверить создание узла, введите и выполните следующий запрос в подсказке доллара.

MATCH (n) RETURN n 

Этот запрос возвращает все узлы в базе данных (мы подробно обсудим этот запрос в следующих главах).

При выполнении этот запрос показывает созданный узел, как показано на следующем снимке экрана.

Многократная проверка

Создание узла с меткой

Метка в Neo4j используется для группировки (классификации) узлов с помощью меток. Вы можете создать метку для узла в Neo4j, используя предложение CREATE.

Синтаксис

Ниже приведен синтаксис для создания узла с меткой с использованием языка запросов Cypher.

CREATE (node:label) 

пример

Ниже приведен пример Cypher Query, который создает узел с меткой.

CREATE (Dhawan:player) 

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Метка узла

Результат

Выполнив, вы получите следующий результат.

Заявление узла

верификация

Чтобы проверить создание узла, введите и выполните следующий запрос в подсказке доллара.

MATCH (n) RETURN n 

Этот запрос возвращает все узлы в базе данных (мы подробно обсудим этот запрос в следующих главах).

При выполнении этот запрос показывает созданный узел, как показано на следующем снимке экрана.

Проверка ярлыка

Создание узла с несколькими метками

Вы также можете создать несколько меток для одного узла. Вам необходимо указать метки для узла, разделив их двоеточием «:».

Синтаксис

Ниже приведен синтаксис для создания узла с несколькими метками.

CREATE (node:label1:label2:. . . . labeln) 

пример

Ниже приведен пример Cypher Query, который создает узел с несколькими метками в Neo4j.

CREATE (Dhawan:person:player) 

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Несколько меток

Результат

Выполнив, вы получите следующий результат.

Выполненный запрос

верификация

Чтобы проверить создание узла, введите и выполните следующий запрос в подсказке доллара.

MATCH (n) RETURN n 

Этот запрос возвращает все узлы в базе данных (мы подробно обсудим этот запрос в следующих главах).

При выполнении этот запрос показывает созданный узел, как показано на следующем снимке экрана.

Multi Label Verification

Создать узел со свойствами

Свойства — это пары ключ-значение, с помощью которых узел хранит данные. Вы можете создать узел со свойствами, используя предложение CREATE. Вам необходимо указать эти свойства через запятую в цветочных скобках «{}».

Синтаксис

Ниже приведен синтаксис для создания узла со свойствами.

CREATE (node:label { key1: value, key2: value, . . . . . . . . .  }) 

пример

Ниже приведен пример Cypher Query, который создает узел со свойствами.

CREATE (Dhawan:player{name: "Shikar Dhawan", YOB: 1985, POB: "Delhi"}) 

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Свойство Step

Результат

Выполнив, вы получите следующий результат.

Lable Result

верификация

Чтобы проверить создание узла, введите и выполните следующий запрос в подсказке доллара.

MATCH (n) RETURN n 

Этот запрос возвращает все узлы в базе данных (мы подробно обсудим этот запрос в следующих главах).

При выполнении этот запрос показывает созданный узел, как показано на следующем снимке экрана.

Узел создания

Возврат созданного узла

В этой главе мы использовали запрос MATCH (n) RETURN n для просмотра созданных узлов. Этот запрос возвращает все существующие узлы в базе данных.

Вместо этого мы можем использовать предложение RETURN с CREATE для просмотра вновь созданного узла.

Синтаксис

Ниже приведен синтаксис для возврата узла в Neo4j.

CREATE (Node:Label{properties. . . . }) RETURN Node 

пример

Ниже приведен пример Cypher Query, который создает узел со свойствами и возвращает его.

CREATE (Dhawan:player{name: "Shikar Dhawan", YOB: 1985, POB: "Delhi"}) RETURN Dhawan 

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Кнопка воспроизведения

Результат

Выполнив, вы получите следующий результат.

Возвратный узел

Neo4j CQL — Создание отношений

В Noe4j отношение — это элемент, с помощью которого мы соединяем два узла графа. Эти отношения имеют направление, тип и шаблоны данных. Эта глава учит вас, как —

  • Создать отношения
  • Создать связь между существующими узлами
  • Создать отношения с меткой и свойствами

Создание отношений

Мы можем создать отношения, используя предложение CREATE. Мы зададим отношение в квадратных скобках «[]» в зависимости от направления отношения, которое оно помещает между дефисом «-» и стрелкой «→», как показано в следующем синтаксисе.

Синтаксис

Ниже приведен синтаксис для создания отношений с использованием предложения CREATE.

CREATE (node1)-[:RelationshipType]->(node2) 

пример

Прежде всего, создайте два узла Ind и Dhawan в базе данных, как показано ниже.

CREATE (Dhawan:player{name: "Shikar Dhawan", YOB: 1985, POB: "Delhi"}) 
CREATE (Ind:Country {name: "India"})

Теперь создайте связь с именем BATSMAN_OF между этими двумя узлами как —

CREATE (Dhawan)-[r:BATSMAN_OF]->(Ind) 

Наконец, верните оба узла, чтобы увидеть созданные отношения.

RETURN Dhawan, Ind 

Приложение для браузера

Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Выделенный запрос

Результат

Выполнив, вы получите следующий результат.

проведение

Создание связи между существующими узлами

Вы также можете создать связь между существующими узлами, используя предложение MATCH .

Синтаксис

Ниже приведен синтаксис для создания отношений с использованием предложения MATCH.

MATCH (a:LabeofNode1), (b:LabeofNode2) 
   WHERE a.name = "nameofnode1" AND b.name = " nameofnode2" 
CREATE (a)-[: Relation]->(b) 
RETURN a,b 

пример

Ниже приведен пример Cypher Query, который создает отношение с помощью предложения match.

MATCH (a:player), (b:Country) WHERE a.name = "Shikar Dhawan" AND b.name = "India" 
CREATE (a)-[r: BATSMAN_OF]->(b) 
RETURN a,b 

Чтобы выполнить вышеуказанный запрос, выполните следующие шаги.

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Существующий узел

Результат

Выполнив, вы получите следующий результат.

проведение

Создание отношений с меткой и свойствами

Вы можете создать связь с меткой и свойствами, используя предложение CREATE.

Синтаксис

Ниже приведен синтаксис для создания связи с меткой и свойствами с помощью предложения CREATE.

CREATE (node1)-[label:Rel_Type {key1:value1, key2:value2, . . . n}]-> (node2) 

пример

Ниже приведен пример Cypher Query, который создает связь с меткой и свойствами.

MATCH (a:player), (b:Country) WHERE a.name = "Shikar Dhawan" AND b.name = "India" 
CREATE (a)-[r:BATSMAN_OF {Matches:5, Avg:90.75}]->(b)  
RETURN a,b 

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Свойство метки

Результат

Выполнив, вы получите следующий результат.

проведение

Создание полного пути

В Neo4j путь формируется с использованием непрерывных отношений. Путь может быть создан с помощью предложения create.

Синтаксис

Ниже приведен синтаксис для создания пути в Neo4j с использованием предложения CREATE.

CREATE p = (Node1 {properties})-[:Relationship_Type]->
   (Node2 {properties})[:Relationship_Type]->(Node3 {properties}) 
RETURN p 

пример

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Трофей Чемпионов

Результат

Выполнив, вы получите следующий результат.

Результат

Neo4j — объединить команду

Команда MERGE является комбинацией команды CREATE и команды MATCH.

Команда Neo4j CQL MERGE ищет заданный шаблон в графе. Если он существует, он возвращает результаты.

Если он НЕ существует в графе, то он создает новый узел / отношение и возвращает результаты.

В этой главе вы узнаете, как:

  • Объединить узел с меткой
  • Объединить узел со свойствами
  • OnCreate и OnMatch
  • Объединить отношения

Синтаксис

Ниже приведен синтаксис команды MERGE.

MERGE (node: label {properties . . . . . . . }) 

Прежде чем перейти к примерам в этом разделе, создайте два узла в базе данных с метками Dhawan и Ind. Создайте отношение типа «BATSMAN_OF» от Dhawan до Ind, как показано ниже.

CREATE (Dhawan:player{name: "Shikar Dhawan", YOB: 1985, POB: "Delhi"}) 
CREATE (Ind:Country {name: "India"}) 
CREATE (Dhawan)-[r:BATSMAN_OF]->(Ind) 

Слияние узла с меткой

Вы можете объединить узел в базе данных на основе метки, используя предложение MERGE. Если вы попытаетесь объединить узел на основе метки, то Neo4j проверяет, существует ли какой-либо узел с данной меткой. Если нет, текущий узел будет создан.

Синтаксис

Ниже приведен синтаксис для объединения узла на основе метки.

MERGE (node:label) RETURN node 

Пример 1

Ниже приведен пример Cypher Query, который объединяет узел в Neo4j (на основе метки). Когда вы выполняете этот запрос, Neo4j проверяет, есть ли какой-либо узел с проигрывателем меток. Если нет, он создает узел с именем «Jadeja» и возвращает его.

Если существует какой-либо узел с данной меткой, Neo4j возвращает их все.

MERGE (Jadeja:player) RETURN Jadeja 

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

сливаться

Результат

Выполнив, вы получите следующий результат. Поскольку вы уже создали узел с именем «Dhawan» с меткой «player» в базе данных, Neo4j возвращает его, как показано на следующем снимке экрана.

Dhawan Player

Пример 2

Теперь попробуйте объединить узел с именем «CT2013» с меткой «Tournament». Поскольку нет узлов с этой меткой, Neo4j создает узел с заданным именем и возвращает его.

MERGE (CT2013:Tournament{name: "ICC Champions Trophy 2013"}) 
RETURN CT2013, labels(CT2013)

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Объединяющий узел

Результат

Выполнив, вы получите следующий результат. Как уже говорилось, поскольку нет узла с данным ярлыком (Турнир). Neo4j создает и возвращает указанный узел, как показано на следующем снимке экрана.

Tornament

Слияние узла со свойствами

Вы также можете объединить узел с набором свойств. Если вы это сделаете, Neo4j выполнит поиск равного соответствия для указанного узла, включая свойства. Если он не находит, он создает.

Синтаксис

Ниже приведен синтаксис для объединения узла с использованием свойств.

MERGE (node:label {key1:value, key2:value, key3:value . . . . . . . . }) 

пример

Ниже приведен пример Cypher Query для объединения узла с использованием свойств. Этот запрос пытается объединить узел с именем «jadeja», используя свойства и метку. Поскольку нет такого узла с точной меткой и свойствами, Neo4j создает его.

MERGE (Jadeja:player {name: "Ravindra Jadeja", YOB: 1988, POB: "NavagamGhed"}) 
RETURN Jadeja 

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Объединение свойств

Результат

Выполнив, вы получите следующий результат. Как уже говорилось, поскольку нет узлов с указанными меткой и свойствами, он создает один, как показано на следующем снимке экрана.

Результат недвижимости

OnCreate и OnMatch

Всякий раз, когда мы выполняем запрос на слияние, узел либо совпадает, либо создается. Используя on create и on match, вы можете установить свойства для указания того, создан ли узел или соответствует.

Синтаксис

Ниже приводится синтаксис предложений OnCreate и OnMatch .

MERGE (node:label {properties . . . . . . . . . . .}) 
ON CREATE SET property.isCreated ="true" 
ON MATCH SET property.isFound ="true"

пример

Ниже приведен пример Cypher Query, который демонстрирует использование предложений OnCreate и OnMatch в Neo4j. Если указанный узел уже существует в базе данных, то узел будет сопоставлен, и в узле будет создано свойство с парой ключ-значение isFound = «true».

Если указанный узел не существует в базе данных, то узел будет создан, и в нем будет создано свойство с парой ключ-значение isCreated = «true».

MERGE (Jadeja:player {name: "Ravindra Jadeja", YOB: 1988, POB: "NavagamGhed"}) 
ON CREATE SET Jadeja.isCreated = "true" 
ON MATCH SET Jadeja.isFound = "true" 
RETURN Jadeja 

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Набор совпадений

Результат

Выполнив, вы получите следующий результат. Как уже говорилось, поскольку нет узла с указанными деталями, Neo4j создал его вместе со свойством isFound, как показано на следующем снимке экрана.

Создать результат

Объединить отношения

Как и узлы, вы также можете объединить отношения, используя предложение MERGE.

пример

Ниже приведен пример Cypher Query, который объединяет отношения с помощью предложения MATCH в Neo4j. Этот запрос пытается объединить отношение с именем WINNERS_OF между узлами «ind» (метка: страна и название: Индия) и ICC13 (метка: турнир и имя: ICC Champions Trophy 2013).

Поскольку такого отношения не существует, Neo4j создает его.

MATCH (a:Country), (b:Tournament) 
   WHERE a.name = "India" AND b.name = "ICC Champions Trophy 2013" 
   MERGE (a)-[r:WINNERS_OF]->(b) 
RETURN a, b 

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Список победителей

Результат

Выполнив, вы получите следующий результат. Поскольку указанное отношение не существует в базе данных, Neo4j создает его, как показано на следующем снимке экрана.

Слияние отношений

Таким же образом, вы можете объединить несколько отношений и ненаправленных отношений тоже.

Neo4j — Установить пункт

Используя предложение Set, вы можете добавлять новые свойства в существующий узел или отношение, а также добавлять или обновлять существующие значения свойств.

В этой главе мы собираемся обсудить, как

  • Установить свойство
  • Удалить свойство
  • Установить несколько свойств
  • Установить метку на узле
  • Установить несколько меток на узле

Установка свойства

Используя предложение SET, вы можете создать новое свойство в узле.

Синтаксис

Ниже приведен синтаксис для установки свойства.

MATCH (node:label{properties . . . . . . . . . . . . . . }) 
SET node.property = value 
RETURN node

пример

Прежде чем приступить к примеру, сначала создайте узел с именем Dhawan, как показано ниже.

CREATE (Dhawan:player{name: "shikar Dhawan", YOB: 1985, POB: "Delhi"}) 

Ниже приведен пример Cypher Query для создания свойства с именем «highestscore» со значением «187» .

MATCH (Dhawan:player{name: "shikar Dhawan", YOB: 1985, POB: "Delhi"}) 
SET Dhawan.highestscore = 187 
RETURN Dhawan

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Игрок матча

Результат

Выполнив, вы получите следующий результат. Здесь вы можете видеть, что свойство с парой ключ-значение Highestscore / 187 создается в узле с именем «Dhawan».

Значение ключа

Удаление собственности

Вы можете удалить существующее свойство, передав ему значение NULL .

Синтаксис

Ниже приведен синтаксис удаления свойства из узла с помощью предложения SET.

MATCH (node:label {properties}) 
SET node.property = NULL 
RETURN node 

пример

Прежде чем приступить к примеру, сначала создайте узел «jadeja», как показано ниже.

Create (Jadeja:player {name: "Ravindra Jadeja", YOB: 1988, POB: "NavagamGhed"})

Ниже приведен пример Cypher Query, который удаляет свойство с именем POB из этого узла с помощью предложения SET, как показано ниже.

MATCH (Jadeja:player {name: "Ravindra Jadeja", YOB: 1988, POB: "NavagamGhed"}) 
SET Jadeja.POB = NULL 
RETURN Jadeja 

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Удалить свойство

Результат

Выполнив, вы получите следующий результат. Здесь вы можете заметить, что переменная с именем POB была удалена.

Удаленный POB

Установка нескольких свойств

Таким же образом вы можете создать несколько свойств в узле, используя предложение Set. Для этого вам нужно указать эти пары ключ-значение запятыми.

Синтаксис

Ниже приведен синтаксис для создания нескольких свойств в узле с помощью предложения SET.

MATCH (node:label {properties}) 
SET node.property1 = value, node.property2 = value 
RETURN node 

пример

Ниже приведен пример Cypher Query, который создает несколько свойств в узле с помощью предложения SET в Neo4j.

MATCH (Jadeja:player {name: "Ravindra Jadeja", YOB: 1988})  
SET Jadeja.POB: "NavagamGhed", Jadeja.HS = "90" 
RETURN Jadeja

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Несколько свойств

Результат

Выполнив, вы получите следующий результат. Здесь вы можете увидеть, что были созданы свойства с именами POB и HS.

Выполнение свойств

Установка метки на узле

Вы можете установить метку для существующего узла, используя предложение SET.

Синтаксис

Ниже приведен синтаксис для установки метки для существующего узла.

MATCH (n {properties . . . . . . . }) 
SET n :label 
RETURN n 

пример

Прежде чем приступить к примеру, сначала создайте узел «Андерсон», как показано ниже.

CREATE (Anderson {name: "James Anderson", YOB: 1982, POB: "Burnely"})

Ниже приведен пример Cypher Query для установки метки на узле с помощью предложения SET. Этот запрос добавляет метку «игрок» к узлу Андерсон и возвращает его.

MATCH (Anderson {name: "James Anderson", YOB: 1982, POB: "Burnely"}) 
SET Anderson: player 
RETURN Anderson 

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Label Node

Результат

Выполнив, вы получите следующий результат. Здесь вы можете заметить, что метка с именем «player» добавляется к узлу.

Добавлен игрок

Установка нескольких меток на узле

Вы можете установить несколько меток для существующего узла, используя предложение SET. Здесь необходимо указать метки, разделяя их двоеточиями «:».

Синтаксис

Ниже приведен синтаксис для установки нескольких меток для существующего узла с помощью предложения SET.

MATCH (n {properties . . . . . . . }) 
SET n :label1:label2 
RETURN n 

пример

Прежде чем приступить к примеру, сначала создайте узел с именем «Ishant», как показано ниже.

CREATE (Ishant {name: "Ishant Sharma", YOB: 1988, POB: "Delhi"}) 

Ниже приведен пример Cypher Query, который используется для создания нескольких меток на узле с помощью предложения SET.

MATCH (Ishant {name: "Ishant Sharma", YOB: 1988, POB: "Delhi"}) 
SET Ishant: player:person 
RETURN Ishant 

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Мульти лейбл

Результат

Выполнив, вы получите следующий результат. Здесь вы можете заметить, что две метки — персона и игрок — добавляются в узел с именем Ishant .

Ishant Player

Neo4j — Удалить предложение

Вы можете удалить узлы и связи из базы данных, используя предложение DELETE.

Удаление всех узлов и отношений

Ниже приведен запрос на удаление всех узлов и связей в базе данных с помощью предложения DELETE.

запрос

MATCH (n) DETACH DELETE n

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Отсоединить матч

Это удалит все узлы и отношения из вашей базы данных neo4j и сделает ее пустой.

Удаление определенного узла

Чтобы удалить конкретный узел, вам необходимо указать детали узла вместо «n» в приведенном выше запросе.

Синтаксис

Ниже приведен синтаксис для удаления определенного узла из Neo4j с помощью предложения DELETE.

MATCH (node:label {properties . . . . . . . . . .  }) 
DETACH DELETE node

пример

Прежде чем приступить к примеру, создайте узел «Ishant» в базе данных Neo4j, как показано ниже.

CREATE (Ishant:player {name: "Ishant Sharma", YOB: 1988, POB: "Delhi"}) 

Ниже приведен пример Cypher Query, который удаляет созданный выше узел с помощью предложения DELETE.

MATCH (Ishant:player {name: "Ishant Sharma", YOB: 1988, POB: "Delhi"}) 
DETACH DELETE Ishant

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Особый узел

Результат

Выполнив, вы получите следующий результат. Здесь вы можете заметить, что указанный узел удален.

Удаленный узел

Neo4j — удалить пункт

Предложение REMOVE используется для удаления свойств и меток из элементов графа (узлов или отношений).

Основное различие между командами Neo4j CQL DELETE и REMOVE —

  • Операция DELETE используется для удаления узлов и связанных связей.
  • Операция REMOVE используется для удаления меток и свойств.

Удаление собственности

Вы можете удалить свойство узла, используя MATCH вместе с предложением REMOVE.

Синтаксис

Ниже приведен синтаксис для удаления свойства узла с помощью предложения REMOVE.

MATCH (node:label{properties . . . . . . . }) 
REMOVE node.property 
RETURN node 

пример

Прежде чем приступить к примеру, создайте узел с именем Dhoni, как показано ниже.

CREATE (Dhoni:player {name: "MahendraSingh Dhoni", YOB: 1981, POB: "Ranchi"})

Ниже приведен пример Cypher Query для удаления созданного выше узла с помощью предложения REMOVE.

MATCH (Dhoni:player {name: "MahendraSingh Dhoni", YOB: 1981, POB: "Ranchi"}) 
REMOVE Dhoni.POB 
RETURN Dhoni 

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Удалить Ранчи

Результат

Выполнив, вы получите следующий результат. Здесь вы можете заметить, что узел с именем POB был удален.

Удалить свойство Результат

Удаление метки с узла

Подобно свойству, вы также можете удалить метку из существующего узла, используя предложение remove.

Синтаксис

Ниже приведен синтаксис для удаления метки из узла.

MATCH (node:label {properties . . . . . . . . . . . }) 
REMOVE node:label 
RETURN node 

пример

Ниже приведен пример Cypher Query для удаления метки из существующего узла с помощью предложения remove.

MATCH (Dhoni:player {name: "MahendraSingh Dhoni", YOB: 1981, POB: "Ranchi"}) 
REMOVE Dhoni:player 
RETURN Dhoni 

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Удалить игрока

Результат

Выполнив, вы получите следующий результат. Здесь вы можете заметить, что метка была удалена из узла.

Удалить результат

Удаление нескольких меток

Вы также можете удалить несколько меток из существующего узла.

Синтаксис

Ниже приведен синтаксис для удаления нескольких меток из узла.

MATCH (node:label1:label2 {properties . . . . . . . . }) 
REMOVE node:label1:label2 
RETURN node

пример

Прежде чем приступить к примеру, создайте узел Ishant, как показано ниже.

CREATE (Ishant:player:person {name: "Ishant Sharma", YOB: 1988, POB: "Delhi"}) 

Ниже приведен пример Cypher Query для удаления нескольких меток из узла.

MATCH (Ishant:player:person {name: "Ishant Sharma", YOB: 1988, POB: "Delhi"}) 
REMOVE Ishant:player:person 
RETURN Ishant 

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Удалить Multi Label

Результат

Выполнив, вы получите следующий результат. Здесь вы можете заметить, что указанные метки были удалены из узла.

Multi Label Результат

Neo4j — пункт Foreach

Предложение FOREACH используется для обновления данных в списке, будь то компоненты пути или результат агрегации.

Синтаксис

Ниже приведен синтаксис предложения FOREACH.

MATCH p = (start node)-[*]->(end node) 
WHERE start.node = "node_name" AND end.node = "node_name" 
FOREACH (n IN nodes(p)| SET n.marked = TRUE) 

пример

Прежде чем приступить к примеру, создайте путь p в базе данных Neo4j, как показано ниже.

CREATE p = (Dhawan {name:"Shikar Dhawan"})-[:TOPSCORRER_OF]->(Ind{name: 
   "India"})-[:WINNER_OF]->(CT2013{name: "Champions Trophy 2013"}) 
RETURN p 

Ниже приведен пример Cypher Query, который добавляет свойство ко всем узлам на пути, используя предложение FOREACH.

MATCH p = (Dhawan)-[*]->(CT2013) 
   WHERE Dhawan.name = "Shikar Dhawan" AND CT2013.name = "Champions Trophy 2013" 
FOREACH (n IN nodes(p)| SET n.marked = TRUE)

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Для каждого

Результат

Выполнив, вы получите следующий результат.

Установить свойства

верификация

Чтобы проверить создание узла, введите и выполните следующий запрос в подсказке доллара.

MATCH (n) RETURN n 

Этот запрос возвращает все узлы в базе данных (мы подробно обсудим этот запрос в следующих главах).

При выполнении этот запрос показывает созданный узел, как показано на следующем снимке экрана.

Созданный результат

Neo4j — матч-предложение

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

Получить все узлы используя Match

С помощью предложения MATCH Neo4j вы можете получить все узлы в базе данных Neo4j.

пример

Прежде чем приступить к примеру, создайте 3 узла и 2 взаимосвязи, как показано ниже.

CREATE (Dhoni:player {name: "MahendraSingh Dhoni", YOB: 1981, POB: "Ranchi"}) 
CREATE (Ind:Country {name: "India", result: "Winners"}) 
CREATE (CT2013:Tornament {name: "ICC Champions Trophy 2013"}) 
CREATE (Ind)-[r1:WINNERS_OF {NRR:0.938 ,pts:6}]->(CT2013) 

CREATE(Dhoni)-[r2:CAPTAIN_OF]->(Ind)  
CREATE (Dhawan:player{name: "shikar Dhawan", YOB: 1995, POB: "Delhi"}) 
CREATE (Jadeja:player {name: "Ravindra Jadeja", YOB: 1988, POB: "NavagamGhed"})  

CREATE (Dhawan)-[:TOP_SCORER_OF {Runs:363}]->(Ind) 
CREATE (Jadeja)-[:HIGHEST_WICKET_TAKER_OF {Wickets:12}]->(Ind) 

Ниже приведен запрос, который возвращает все узлы в базе данных Neo4j.

MATCH (n) RETURN n 

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Возвращение матча

Результат

Выполнив, вы получите следующий результат.

Выполнение результата

Получение всех узлов под определенной меткой

Используя предложение соответствия, вы можете получить все узлы под определенной меткой.

Синтаксис

Ниже приведен синтаксис для получения всех узлов под определенной меткой.

MATCH (node:label) 
RETURN node 

пример

Ниже приведен пример Cypher Query, который возвращает все узлы в базе данных под проигрывателем меток.

MATCH (n:player) 
RETURN n 

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

N Player

Результат

Выполнив, вы получите следующий результат.

Конкретный ярлык

Матч по соотношению

Вы можете получить узлы на основе отношений, используя предложение MATCH.

Синтаксис

Ниже приведен синтаксис получения узлов на основе отношения с использованием предложения MATCH.

MATCH (node:label)<-[: Relationship]-(n) 
RETURN n 

пример

Ниже приведен пример Cypher Query для извлечения узлов на основе отношений с использованием предложения MATCH.

MATCH (Ind:Country {name: "India", result: "Winners"})<-[: TOP_SCORER_OF]-(n) 
RETURN n.name 

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Лучший бомбардир

Результат

Выполнив, вы получите следующий результат.

Матч Отношения

Удалить все узлы

Вы можете удалить все узлы, используя предложение MATCH.

запрос

Ниже приведен запрос на удаление всех узлов в Neo4j.

MATCH (n) detach delete n 

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Желаемая пресса

Результат

Выполнив, вы получите следующий результат.

Удаленные отношения

Neo4j — Факультативное предложение о совпадении

Предложение OPTIONAL MATCH используется для поиска шаблона, описанного в нем, при использовании нулей для отсутствующих частей шаблона.

OPTIONAL MATCH аналогичен предложению match, единственное отличие состоит в том, что он возвращает ноль в результате пропущенных частей шаблона.

Синтаксис

Ниже приводится синтаксис ФУНКЦИОНАЛЬНОГО МАТЧА с отношением.

MATCH (node:label {properties. . . . . . . . . . . . . .}) 
OPTIONAL MATCH (node)-->(x) 
RETURN x

пример

Ниже приведен пример Cypher Query, который пытается извлечь отношения из узла ICCT2013. Поскольку таких узлов нет, возвращается ноль.

MATCH (a:Tornament {name: "ICC Champions Trophy 2013"}) 
OPTIONAL MATCH (a)-->(x) 
RETURN x 

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Дополнительный Матч

Результат

Выполнив, вы получите следующий результат. Здесь вы можете заметить, что, поскольку для требуемого шаблона нет совпадений, Neo4j вернул ноль.

Требуется шаблон

Neo4j — Где пункт

Как и SQL, Neo4j CQL предоставил предложение WHERE в команде CQL MATCH для фильтрации результатов запроса MATCH.

Синтаксис

Ниже приведен синтаксис предложения WHERE.

MATCH (label)  
WHERE label.country = "property" 
RETURN label 

пример

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

CREATE(Dhawan:player{name:"shikar Dhawan", YOB: 1985, runs:363, country: "India"}
CREATE(Jonathan:player{name:"Jonathan Trott", YOB:1981, runs:229, country:"South Africa"}
CREATE(Sangakkara:player{name:"Kumar Sangakkara", YOB:1977, runs:222, 
   country:"Srilanka"})
CREATE(Rohit:player{name:"Rohit Sharma", YOB: 1987, runs:177, country:"India"})
CREATE(Virat:player{name:"Virat Kohli", YOB: 1988, runs:176, country:"India"})
CREATE(Ind:Country {name: "India", result: "Winners"})

Ниже приведен пример Cypher Query, который возвращает всех игроков (узлов), принадлежащих стране Индия, с использованием предложения WHERE.

MATCH (player)  
WHERE player.country = "India" 
RETURN player 

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Где игрок

Результат

Выполнив, вы получите следующий результат.

Где результат

ГДЕ оговорка с несколькими условиями

Вы также можете использовать предложение WHERE для проверки нескольких условий.

Синтаксис

Ниже приводится синтаксис использования предложения WHERE в Neo4j с несколькими условиями.

MATCH (emp:Employee)  
WHERE emp.name = 'Abc' AND emp.name = 'Xyz' 
RETURN emp 

пример

Ниже приведен пример Cypher Query, который фильтрует узлы в базе данных Neo4j, используя два условия.

MATCH (player)  
WHERE player.country = "India" AND player.runs >=175 
RETURN player 

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Вернуться Игрок

Результат

Выполнив, вы получите следующий результат.

Состояние Результат

Использование отношения с предложением Where

Вы также можете использовать предложение Where для фильтрации узлов, используя отношения.

пример

Предположим, у нас есть следующий график в базе данных.

Предполагаемая база данных

Ниже приведен пример Cypher Query для получения лучшего бомбардира Индии с помощью предложения WHERE, как показано ниже.

MATCH (n) 
WHERE (n)-[: TOP_SCORER_OF]->( {name: "India", result: "Winners"}) 
RETURN n 

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Победители Результат

Результат

Выполнив, вы получите следующий результат. Здесь вы можете заметить, что Neo4j вернул узел, имеющий отношение TOP_SCORER_OF к стране с узлом, имеющим имя Индия.

Возвращенный узел

Neo4j — функция подсчета

Предположим, мы создали график в базе данных со следующими деталями.

Подсчет базы данных

подсчитывать

Функция count () используется для подсчета количества строк.

Синтаксис

Ниже приводится синтаксис функции count.

MATCH (n { name: 'A' })-->(x) 
RETURN n, count(*) 

пример

Ниже приведен пример Cypher Query, который демонстрирует использование функции count () .

Match(n{name: "India", result: "Winners"})--(x)  
RETURN n, count(*) 

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Считать матч

Результат

Выполнив, вы получите следующий результат.

Результат подсчета

Количество групп

Предложение COUNT также используется для подсчета групп типов отношений.

пример

Ниже приведен пример Cypher Query, который подсчитывает и возвращает количество узлов, участвующих в каждом отношении.

Match(n{name: "India", result: "Winners"})-[r]-(x)  
RETURN type (r), count(*) 

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Количество групп

Neo4j — пункт возврата

Предложение RETURN используется для возврата узлов, отношений и свойств в Neo4j. В этой главе мы узнаем, как

  • Вернуть узлы
  • Вернуть несколько узлов
  • Возврат отношений
  • Вернуться свойства
  • Вернуть все элементы
  • Вернуть переменную с псевдонимом столбца

Возвращающиеся узлы

Вы можете вернуть узел, используя предложение RETURN.

Синтаксис

Ниже приведен синтаксис для возврата узлов с помощью предложения RETURN.

Create (node:label {properties}) 
RETURN node 

пример

Прежде чем приступить к примеру, создайте 3 узла и 2 взаимосвязи, как показано ниже.

Create (Dhoni:player {name: "MahendraSingh Dhoni", YOB: 1981, POB: "Ranchi"}) 
CREATE (Ind:Country {name: "India", result: "Winners"}) 
CREATE (CT2013:Tornament {name: "ICC Champions Trophy 2013"}) 
CREATE (Ind)-[r1:WINNERS_OF {NRR:0.938 ,pts:6}]->(CT2013) 
CREATE(Dhoni)-[r2:CAPTAIN_OF]->(Ind) 

Ниже приведен пример Cypher Query, который создает узел с именем Dhoni и возвращает его.

Create (Dhoni:player {name: "MahendraSingh Dhoni", YOB: 1981, POB: "Ranchi"}) 
RETURN Dhoni

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Вернуть

Результат

Выполнив, вы получите следующий результат.

Создать игрока

Возврат нескольких узлов

Вы также можете вернуть несколько узлов, используя предложение return.

Синтаксис

Ниже приведен синтаксис для возврата нескольких узлов с помощью предложения return.

CREATE (Ind:Country {name: "India", result: "Winners"}) 
CREATE (CT2013:Tornament {name: "ICC Champions Trophy 2013"}) 
RETURN Ind, CT2013 

пример

Ниже приведен пример Cypher Query для возврата нескольких узлов с помощью предложения return.

CREATE (Ind:Country {name: "India", result: "Winners"}) 
CREATE (CT2013:Tornament {name: "ICC Champions Trophy 2013"}) 
RETURN Ind, CT2013 

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Мульти узел

Результат

Выполнив, вы получите следующий результат. Здесь вы можете заметить, что Neo4j вернул 2 узла.

Создать Торнамент

Возвращение отношений

Вы также можете вернуть отношения, используя предложение Return.

Синтаксис

Ниже приведен синтаксис для возврата отношений с использованием предложения RETURN.

CREATE (node1)-[Relationship:Relationship_type]->(node2) 
RETURN Relationship 

пример

Ниже приведен пример Cypher Query, который создает две связи и возвращает их.

CREATE (Ind)-[r1:WINNERS_OF {NRR:0.938 ,pts:6}]->(CT2013) 
CREATE(Dhoni)-[r2:CAPTAIN_OF]->(Ind) 
RETURN r1, r2 

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Возвращение отношений

Результат

Выполнив, вы получите следующий результат.

Создать победителей

Возвращая свойства

Вы также можете вернуть свойства, используя предложение RETURN.

Синтаксис

Ниже приведен синтаксис для возврата свойств с использованием предложения RETURN.

Match (node:label {properties . . . . . . . . . . }) 
Return node.property 

пример

Ниже приведен пример Cypher Query для возврата свойств узла.

Match (Dhoni:player {name: "MahendraSingh Dhoni", YOB: 1981, POB: "Ranchi"}) 
Return Dhoni.name, Dhoni.POB 

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Возврат недвижимости

Результат

Выполнив, вы получите следующий результат.

Streaming

Возврат всех элементов

Вы можете вернуть все элементы в базе данных Neo4j, используя предложение RETURN.

пример

Ниже приведен пример Cypher Query для возврата всех элементов в базе данных.

Match p = (n {name: "India", result: "Winners"})-[r]-(x)  
RETURN * 

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Все элементы

Результат

Выполнив, вы получите следующий результат.

Все элементы Результат

Возвращение переменной с псевдонимом столбца

Вы можете вернуть определенный столбец с псевдонимом, используя предложение RETURN в Neo4j.

пример

Ниже приведен пример Cypher Query, который возвращает столбец POB как Место рождения.

Match (Dhoni:player {name: "MahendraSingh Dhoni", YOB: 1981, POB: "Ranchi"}) 
Return Dhoni.POB as Place Of Birth

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Столбец возврата

Результат

Выполнив, вы получите следующий результат.

Колонка Псевдоним

Neo4j — заказ по пункту

Вы можете упорядочить данные результатов по порядку, используя предложение ORDER BY.

Синтаксис

Ниже приведен синтаксис предложения ORDER BY.

MATCH (n)  
RETURN n.property1, n.property2 . . . . . . . .  
ORDER BY n.property

пример

Прежде чем приступить к примеру, создайте 5 узлов в базе данных Neo4j, как показано ниже.

CREATE(Dhawan:player{name:"shikar Dhawan", YOB: 1985, runs:363, country: "India"})
CREATE(Jonathan:player{name:"Jonathan Trott", YOB:1981, runs:229, country:"South Africa"})
CREATE(Sangakkara:player{name:"Kumar Sangakkara", YOB:1977, runs:222, country:"Srilanka"})
CREATE(Rohit:player{name:"Rohit Sharma", YOB: 1987, runs:177, country:"India"})
CREATE(Virat:player{name:"Virat Kohli", YOB: 1988, runs:176, country:"India"})

Ниже приведен пример Cypher Query, который возвращает созданные выше узлы в порядке прогонов, набранных игроком с помощью предложения ORDERBY.

MATCH (n)  
RETURN n.name, n.runs 
ORDER BY n.runs 

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Возвращаемое имя

Результат

Выполнив, вы получите следующий результат.

документация

Упорядочение узлов по нескольким свойствам

Вы можете расположить узлы на основе нескольких свойств, используя предложение ORDEYBY .

Синтаксис

Ниже приведен синтаксис для размещения узлов по нескольким свойствам с использованием предложения ORDERBY.

MATCH (n) 
RETURN n 
ORDER BY n.age, n.name 

пример

Ниже приведен пример Cypher Query, который упорядочивает узлы, созданные ранее в этой главе, на основе свойств — запусков и страны.

MATCH (n) 
RETURN n.name, n.runs, n.country 
ORDER BY n.runs, n.country

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Заказ прогонами

Результат

Выполнив, вы получите следующий результат.

Узлы заказа

Упорядочение узлов по убыванию

Вы можете расположить узлы в базе данных в порядке убывания, используя предложение ORDERBY .

Синтаксис

Ниже приведен синтаксис для размещения узлов в базе данных.

MATCH (n) 
RETURN n 
ORDER BY n.name DESC 

пример

Ниже приведен пример Cypher Query, который упорядочивает узлы в базе данных в порядке убывания с использованием предложения ORDERBY.

MATCH (n)  
RETURN n.name, n.runs 
ORDER BY n.runs DESC 

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

В порядке убывания

Результат

Выполнив, вы получите следующий результат.

Сортировать по

Neo4j — Лимитная оговорка

Предложение limit используется для ограничения количества строк в выводе.

Синтаксис

Ниже приведен синтаксис предложения LIMIT.

MATCH (n) 
RETURN n 
ORDER BY n.name 
LIMIT 3 

пример

Прежде чем приступить к примеру, создайте 5 узлов в базе данных Neo4j, как показано ниже.

CREATE(Dhawan:player{name:"shikar Dhawan", YOB: 1985, runs:363, country: "India"})
CREATE(Jonathan:player{name:"Jonathan Trott", YOB:1981, runs:229, country:"South Africa"})
CREATE(Sangakkara:player{name:"Kumar Sangakkara", YOB:1977, runs:222, country:"Srilanka"})
CREATE(Rohit:player{name:"Rohit Sharma", YOB: 1987, runs:177, country:"India"})
CREATE(Virat:player{name:"Virat Kohli", YOB: 1988, runs:176, country:"India"})

Ниже приведен пример Cypher Query, который возвращает созданные выше узлы в порядке убывания и ограничивает записи в результате до 3.

MATCH (n)  
RETURN n.name, n.runs 
ORDER BY n.runs DESC 
LIMIT 3 

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

предел

Результат

Выполнив, вы получите следующий результат.

Лимит Результат

Предел с выражением

Вы также можете использовать предложение LIMIT с выражением.

пример

Ниже приведен пример Cypher Query, который ограничивает записи с помощью выражения.

MATCH (n) 
RETURN n.name, n.runs 
ORDER BY n.runs DESC 
LIMIT toInt(3 * rand())+ 1 

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Предел выражения

Результат

Выполнив, вы получите следующий результат.

Результат выражения

Neo4j — Пропустить статью

Предложение SKIP используется для определения, с какой строки начинать, включая строки в выводе.

пример

Прежде чем приступить к примеру, создайте 5 узлов, как показано ниже.

CREATE(Dhawan:player{name:"shikar Dhawan", YOB: 1985, runs:363, country: "India"})
CREATE(Jonathan:player{name:"Jonathan Trott", YOB:1981, runs:229, country:"South Africa"})
CREATE(Sangakkara:player{name:"Kumar Sangakkara", YOB:1977, runs:222, country:"Srilanka"})
CREATE(Rohit:player{name:"Rohit Sharma", YOB: 1987, runs:177, country:"India"})
CREATE(Virat:player{name:"Virat Kohli", YOB: 1988, runs:176, country:"India"})

Ниже приведен пример Cypher Query, который возвращает все узлы в базе данных, пропуская первые 3 узла.

MATCH (n)  
RETURN n.name, n.runs 
ORDER BY n.runs DESC 
SKIP 3 

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Пропускать

Результат

Выполнив, вы получите следующий результат.

Пропустить результат

Пропустить, используя выражение

Вы можете пропустить записи результата, используя выражение.

пример

Ниже приведен пример Cypher Query, в котором используется выражение SKIP с выражением.

MATCH (n)  
RETURN n.name, n.runs 
ORDER BY n.runs DESC 
SKIP toInt (2*rand())+ 1 

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Пропустить выражение

Результат

Выполнив, вы получите следующий результат.

Пропустить результат выражения

Neo4j — с оговоркой

Вы можете связать искусство запросов вместе, используя предложение WITH.

Синтаксис

Ниже приведен синтаксис предложения WITH.

MATCH (n) 
WITH n 
ORDER BY n.property 
RETURN collect(n.property) 

пример

Ниже приведен пример Cypher Query, который демонстрирует использование предложения WITH.

MATCH (n) 
WITH n 
ORDER BY n.name DESC LIMIT 3 
RETURN collect(n.name) 

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Возврат Собрать

Результат

Выполнив, вы получите следующий результат.

Собрать результат

Neo4j — Размотать оговорку

Предложение unwind используется для раскручивания списка в последовательность строк.

пример

Ниже приведен пример Cypher Query, который раскручивает список.

UNWIND [a, b, c, d] AS x 
RETURN x 

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Возврат Собрать

Результат

Выполнив, вы получите следующий результат.

Собрать результат

Neo4j — Строковые функции

Как и SQL, Neo4J CQL предоставляет набор функций String для использования их в запросах CQL для получения требуемых результатов.

Здесь мы собираемся обсудить некоторые важные и часто используемые функции.

Список строковых функций

Ниже приведен список известных функций String в Neo4j.

Sr.No Описание функции
1 ВЕРХНИЙ

Он используется для изменения всех букв в верхний регистр.

2 НИЖНИЙ

Используется для преобразования всех букв в строчные.

3 SUBSTRING

Используется для получения подстроки данной строки.

4 замещать

Он используется для замены подстроки заданной подстрокой строки.

Он используется для изменения всех букв в верхний регистр.

Используется для преобразования всех букв в строчные.

Используется для получения подстроки данной строки.

Он используется для замены подстроки заданной подстрокой строки.

Neo4j — функция агрегации

Как и SQL, Neo4j CQL предоставляет некоторые функции агрегирования для использования в предложении RETURN. Это похоже на предложение GROUP BY в SQL.

Мы можем использовать эту функцию RETURN + Aggregation в команде MATCH для работы с группой узлов и возврата некоторого агрегированного значения.

Список функций AGGREGATION

Ниже приведен список функций агрегирования в Neo4j.

Sr.No Описание функции
1 COUNT

Возвращает количество строк, возвращаемых командой MATCH.

2 МАКСИМУМ

Возвращает максимальное значение из набора строк, возвращаемых командой MATCH.

3 MIN

Возвращает минимальное значение из набора строк, возвращаемых командой MATCH.

4 SUM

Возвращает значение суммирования всех строк, возвращаемых командой MATCH.

5 AVG

Возвращает среднее значение всех строк, возвращаемых командой MATCH.

Возвращает количество строк, возвращаемых командой MATCH.

Возвращает максимальное значение из набора строк, возвращаемых командой MATCH.

Возвращает минимальное значение из набора строк, возвращаемых командой MATCH.

Возвращает значение суммирования всех строк, возвращаемых командой MATCH.

Возвращает среднее значение всех строк, возвращаемых командой MATCH.

Neo4j — Резервное копирование и восстановление

В приложениях реального времени мы должны регулярно выполнять резервное копирование базы данных наших приложений, чтобы мы могли восстановить работоспособность в любой точке сбоя.

Это правило применимо как к базам данных RDBMS, так и к базам данных NoSQL.

В этом разделе мы обсудим две важные задачи администратора баз данных.

  • Как сделать резервную копию базы данных Neo4j.
  • Как восстановить базу данных Neo4j в определенную резервную копию.

Примечание. Эти шаги применимы только к операционной системе Windows. Мы должны использовать команды подобного рода, чтобы делать те же шаги в других операционных системах.

Резервное копирование базы данных Neo4j

Шаг 1 — Нажмите «Neo4j Community», используя следующий путь —

Кнопка «Пуск» Windows → «Все программы» → «Сообщество Neo4j» → «Сообщество Neo4j»

По умолчанию он выбирает c: \ Users \ [имя пользователя] \ Documents \ Neo4j \ default.graphdb. Однако, если мы хотим, мы можем изменить путь к другому каталогу.

Шаг 2 — Здесь мы перешли в нашу папку базы данных Neo4j.

C: \ Ne04j2.0db

Настройка сообщества

Шаг 3 — Нажмите кнопку «Пуск».

Обзор Стоп

После запуска сервера мы можем наблюдать, как файлы нашей базы данных Neo4j генерируются в указанном каталоге.

Наблюдаемый каталог

Прежде чем приступить к резервному копированию базы данных, прежде всего мы должны выключить сервер базы данных Neo4j.

Шаг 4 — Нажмите кнопку «Стоп», чтобы выключить сервер.

Настройка сообщества

Файлы базы данных Neo4j доступны по адресу C: \ Ne04j2.0db

Каталог наблюдений

Шаг 5 — Откройте командную строку.

Командная строка

Шаг 6 — Создайте папку «Neo4jDbBackup-01» в C: \ Neo4j (это может быть любое место в вашей файловой системе).

mkdir C:\Neo4j\Neo4jDbBackup-01 

Cmd Mkdir

Он создает новую папку «Neo4jDbBackup-01» в указанной папке файловой системы «C: \ Neo4j \»

Новый каталог

Шаг 7 — Введите следующую команду и нажмите клавишу Enter.

copy C:\Ne04j2.0db C:\Neo4j\Neo4jDbBackup-01 

Команда резервного копирования

Скопированные заявления

Это означает, что наши файлы копируются в нужную папку назначения. Получите доступ к этой папке и обратите внимание, что в папке есть наши файлы базы данных.

Файлы базы данных

Шаг 8 — Используйте любой инструмент сжатия / распаковки Windows, такой как WinZip, 7 Zip или WinRAR, чтобы заархивировать нашу папку базы данных.

Папка ZIP

Шаг 9 — Теперь наш файл Neo4jDbBackup-01.zip создан. Если у вас есть ограничения памяти в вашей файловой системе, удалите папку «Neo4jDbBackup-01» в «C: \ Neo4j \»

Ограничение памяти

Восстановление базы данных Neo4j

Шаг 1 — Завершите работу сервера базы данных. Пожалуйста, обратитесь к предыдущим шагам, чтобы выключить сервер.

Настройка сообщества

Шаг 2 — Очистить текущую папку базы данных.

Текущая база данных

Шаг 3 — Используйте любой инструмент сжатия / распаковки Windows, такой как WinZip, 7 Zip или WinRar, чтобы распаковать нашу резервную папку.

Извлечения файлов

Шаг 4 — Откройте командную строку и выполните следующую команду.

Copy C:\Neo4j\Neo4jDbBackup-01 C:\Ne04j2.0db 

казнить

Теперь мы можем наблюдать, что наша папка базы данных содержит рабочие файлы резервных копий.

Шаг 5 — Запустите сервер, нажав кнопку «Пуск».

Настройка сообщества

Обзор Стоп

Шаг 6 — Выполните несколько команд MATCH + RETURN, чтобы проверить, правильно ли мы восстановили нашу базу данных.

Neo4j — Индекс

Neo4j SQL поддерживает индексы на свойствах узлов или отношений для повышения производительности приложения. Мы можем создавать индексы по свойствам для всех узлов, которые имеют одинаковое имя метки.

Мы можем использовать эти проиндексированные столбцы в операторе MATCH, WHERE или IN, чтобы улучшить выполнение команды CQL.

В этой главе мы обсудим, как

  • Создать индекс
  • Удалить индекс

Создание индекса

Neo4j CQL предоставляет команду «CREATE INDEX» для создания индексов на свойствах Node или Relationship.

Синтаксис

Ниже приведен синтаксис для создания индекса в Neo4j.

CREATE INDEX ON:label (node) 

пример

Прежде чем приступить к примеру, создайте узел Dhawan, как показано ниже.

CREATE (Dhawan:player{name: "shikar Dhawan", YOB: 1995, POB: "Delhi"})

Ниже приведен пример Cypher Query для создания индекса на узле Dhawan в Neo4j.

CREATE INDEX ON:player(Dhawan) 

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано ниже.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Индекс включен

Результат

Выполнив, вы получите следующий результат.

Добавленный индекс

Удаление индекса

Neo4j CQL предоставляет команду «DROP INDEX» для удаления существующего индекса свойства Node или Relationshis.

Синтаксис

Ниже приведен синтаксис для создания индекса в Neo4j.

DROP INDEX ON:label(node) 

пример

Ниже приведен пример Cypher Query для создания индекса на узле с именем «Dhawan» в Neo4j.

DROP INDEX ON:player(Dhawan) 

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Drop Index

Результат

Выполнив, вы получите следующий результат.

Удалить индекс

Neo4j — Создать уникальное ограничение

В базе данных Neo4j команда CQL CREATE всегда создает новый узел или отношение, что означает, что, даже если вы используете те же значения, она вставляет новую строку. В соответствии с требованиями нашего приложения для некоторых узлов или отношений, мы должны избегать этого дублирования. Для этого мы должны использовать некоторые ограничения базы данных, чтобы создать правило для одного или нескольких свойств узла или отношения.

Как и SQL, база данных Neo4j также поддерживает уникальное ограничение на свойства узла или отношения. Уникальное ограничение используется, чтобы избежать дублирования записей и обеспечить соблюдение правила целостности данных.

Создать УНИКАЛЬНОЕ Ограничение

Neo4j CQL предоставляет команду «CREATE CONSTRAINT» для создания уникальных ограничений на свойства узла или отношения.

Синтаксис

Ниже приведен синтаксис для создания уникального ограничения в Neo4j.

MATCH (root {name: "Dhawan"}) 
CREATE UNIQUE (root)-[:LOVES]-(someone) 
RETURN someone 

пример

Прежде чем приступить к примеру, создайте 4 узла, как показано ниже.

CREATE(Dhawan:player{id:001, name: "shikar Dhawan", YOB: 1995, POB: "Delhi"}) 
CREATE(Jonathan:player {id:002, name: "Jonathan Trott", YOB: 1981, POB: "CapeTown"}) 
CREATE(Sangakkara:player {id:003, name: "Kumar Sangakkara", YOB: 1977, POB: "Matale"}) 
CREATE(Rohit:player {id:004, name: "Rohit Sharma", YOB: 1987, POB: "Nagpur"}) 
CREATE(Virat:player {id:005, name: "Virat Kohli", YOB: 1988, POB: "Delhi"}) 

Ниже приведен пример Cypher Query для создания уникального ограничения на идентификатор свойства с помощью Neo4j.

CREATE CONSTRAINT ON (n:player) ASSERT n.id IS UNIQUE

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Создать уникальный

Результат

Выполнив, вы получите следующий результат.

Добавлено ограничение

верификация

Теперь попробуйте добавить еще один узел с избыточным значением идентификатора. Здесь мы пытаемся создать узел с идентификатором 002 .

CREATE (Jadeja:player {id:002, name: "Ravindra Jadeja", YOB: 1988, POB: "NavagamGhed"}) 

Если вы выполните этот запрос, вы получите сообщение об ошибке, как показано на следующем снимке экрана.

Node Label Play

Neo4j — Drop Уникальный

Мы уже обсуждали создание УНИКАЛЬНЫХ операций с ограничениями на примерах в предыдущей главе. В этой главе мы обсудим исключение операции УНИКАЛЬНОЕ ограничение с примерами.

Neo4j CQL предоставляет команду «DROP CONSTRAINT» для удаления существующего ограничения Unique из свойства узла или отношения.

Синтаксис

Ниже приводится синтаксис для отбрасывания ограничения UNIQUE в Neo4j.

DROP CONSTRAINT ON (node:label) 
ASSERT node.id IS UNIQUE 

пример

Ниже приведен пример запроса Cypher для удаления ограничения UNIQUE для идентификатора свойства.

DROP CONSTRAINT ON (n:player) 
ASSERT n.id IS UNIQUE 

Для выполнения вышеуказанного запроса выполните следующие шаги:

Шаг 1 — Откройте настольное приложение Neo4j и запустите сервер Neo4j. Откройте встроенное приложение браузера Neo4j, используя URL-адрес http: // localhost: 7474 /, как показано на следующем снимке экрана.

Приложение для браузера

Шаг 2 — Скопируйте и вставьте нужный запрос в подсказку доллара и нажмите кнопку воспроизведения (чтобы выполнить запрос), выделенную на следующем снимке экрана.

Отменить ограничение

Результат

Выполнив, вы получите следующий результат.