Podobnie jak tworzenie węzłów w Neo4j, możemy użyć CREATE
oświadczenie do tworzenia relacji między tymi węzłami.
Oświadczenie do tworzenia relacji składa się z CREATE
, a następnie szczegóły tworzonej relacji.
Przykład
Stwórzmy relację między niektórymi węzłami, które stworzyliśmy wcześniej. Najpierw stwórzmy relację między wykonawcą a albumem.
Stworzymy następującą relację:
Oto szyfr CREATE
oświadczenie o utworzeniu powyższej relacji:
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
Wyjaśnienie powyższego kodu
Najpierw używamy MATCH
instrukcja, aby znaleźć dwa węzły, między którymi chcemy utworzyć relację.
Może być wiele węzłów z Wykonawcą lub Album etykieta, więc zawęzimy ją tylko do tych węzłów, którymi jesteśmy zainteresowani. W tym przypadku używamy wartości właściwości, aby ją odfiltrować. Używamy Nazwy właściwość, którą wcześniej przypisaliśmy do każdego węzła.
Następnie jest rzeczywisty CREATE
oświadczenie. To właśnie tworzy związek. W tym przypadku odwołuje się do dwóch węzłów za pomocą nazwy zmiennej (np. a
i b
), które podaliśmy w pierwszym wierszu. Relacja jest ustalana przy użyciu wzorca kodu ASCII ze strzałką wskazującą kierunek relacji:(a)-[r:RELEASED]->(b)
.
Nadajemy relacji nazwę zmiennej r
i nadaj relacji typ RELEASED
(jak w „ten zespół wydany tego albumu”). Typ relacji jest analogiczny do etykiety węzła.
Dodawanie kolejnych relacji
Powyższy przykład jest bardzo prostym przykładem relacji. Jedną z rzeczy, w których Neo4j jest naprawdę dobry, jest radzenie sobie z wieloma wzajemnie powiązanymi relacjami.
Oprzyjmy się na relacji, którą właśnie nawiązaliśmy, abyśmy mogli zobaczyć, jak łatwo jest kontynuować tworzenie większej liczby węzłów i relacji między nimi. Utworzymy więc jeszcze jeden węzeł i dodamy jeszcze dwie relacje.
Otrzymamy następujący wykres:
Ten wykres pokazuje, że Devin Townsend gra w zespole, występował na albumie, który zespół wydał, a także był producentem albumu.
Zacznijmy więc od utworzenia węzła dla Devina Townsenda:
CREATE (p:Person { Name: "Devin Townsend" })
Teraz utwórz relacje i zwróć wykres:
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
Powinieneś teraz zobaczyć wykres jak na poprzednim zrzucie ekranu.