Точно като създаването на възли в Neo4j, можем да използваме CREATE
изявление за създаване на връзки между тези възли.
Инструкцията за създаване на връзка се състои от CREATE
, последвано от подробностите за връзката, която създавате.
Пример
Нека създадем връзка между някои от възлите, които създадохме по-рано. Първо, нека създадем връзка между изпълнител и албум.
Ще създадем следната връзка:
Ето Cypher CREATE
изявление за създаване на горната връзка:
MATCH (a:Artist),(b:Album) WHERE a.Name = "Strapping Young Lad" AND b.Name = "Heavy as a Really Heavy Thing" CREATE (a)-[r:RELEASED]->(b) RETURN r
Обяснение на горния код
Първо, използваме MATCH
изявление, за да намерим двата възела, между които искаме да създадем връзката.
Може да има много възли с Изпълнител или Албум етикет, така че го стесняваме само до онези възли, които ни интересуват. В този случай използваме стойност на свойство, за да го филтрираме. Използваме Име свойство, което по-рано сме присвоили на всеки възел.
След това има действителното CREATE
изявление. Това е, което създава връзката. В този случай той препраща към двата възела чрез името на променливата (т.е. a
и b
), които им дадохме в първия ред. Връзката се установява чрез използване на ASCII-код модел, със стрелка, указваща посоката на връзката:(a)-[r:RELEASED]->(b)
.
Даваме на връзката име на променлива r
и дайте на връзката тип RELEASED
(както в „тази група освободена този албум"). Типът на връзката е аналогичен на етикета на възел.
Добавяне на още връзки
Горният пример е много прост пример за връзка. Едно от нещата, в които Neo4j е наистина добър, е да управлява много взаимосвързани връзки.
Нека надградим връзката, която току-що установихме, за да можем да видим колко лесно е да продължим да създаваме повече възли и връзки между тях. Така че ще създадем още един възел и ще добавим още две връзки.
В крайна сметка ще получим следната графика:
Тази графика показва, че Девин Таунсенд свири в групата, изпълнявал е в албума, който групата издаде, и той също продуцира албума.
Така че нека започнем със създаването на възела за Devin Townsend:
CREATE (p:Person { Name: "Devin Townsend" })
Сега създайте връзките и върнете графиката:
MATCH (a:Artist),(b:Album),(p:Person) WHERE a.Name = "Strapping Young Lad" AND b.Name = "Heavy as a Really Heavy Thing" AND p.Name = "Devin Townsend" CREATE (p)-[pr:PRODUCED]->(b), (p)-[pf:PERFORMED_ON]->(b), (p)-[pl:PLAYS_IN]->(a) RETURN a,b,p
Сега трябва да видите графиката, както на предишната екранна снимка.