sql >> Databáze >  >> RDS >> Mysql

Neo4j - Vytvořte vztah pomocí Cypher

Stejně jako při vytváření uzlů v Neo4j můžeme použít CREATE k vytvoření vztahů mezi těmito uzly.

Příkaz pro vytvoření vztahu se skládá z CREATE , za kterým následují podrobnosti o vztahu, který vytváříte.

Příklad

Vytvořme vztah mezi některými uzly, které jsme vytvořili dříve. Nejprve vytvořte vztah mezi interpretem a albem.

Vytvoříme následující vztah:

Zde je Cypher CREATE příkaz k vytvoření výše uvedeného vztahu:

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

Vysvětlení výše uvedeného kódu

Nejprve použijeme MATCH příkaz k nalezení dvou uzlů, mezi kterými chceme vytvořit vztah.

Může existovat mnoho uzlů s Umělcem nebo Album label, takže jej zúžíme pouze na ty uzly, které nás zajímají. V tomto případě použijeme hodnotu vlastnosti k filtrování. Používáme Jméno vlastnost, kterou jsme dříve přiřadili každému uzlu.

Pak je tu skutečný CREATE prohlášení. To je to, co vytváří vztah. V tomto případě odkazuje na dva uzly názvem proměnné (tj. a a b ), které jsme jim dali v prvním řádku. Vztah je vytvořen pomocí vzoru kódu ASCII se šipkou označující směr vztahu:(a)-[r:RELEASED]->(b) .

Vztahu dáme název proměnné r a dejte vztahu typ RELEASED (jako v „tato kapela vydaná toto album"). Typ vztahu je analogický k označení uzlu.

Přidání dalších vztahů

Výše uvedený příklad je velmi jednoduchým příkladem vztahu. Jednou z věcí, ve kterých je Neo4j opravdu dobrý, je zvládnutí mnoha vzájemně propojených vztahů.

Pojďme stavět na vztahu, který jsme právě navázali, abychom viděli, jak snadné je pokračovat ve vytváření dalších uzlů a vztahů mezi nimi. Vytvoříme tedy ještě jeden uzel a přidáme další dva vztahy.

Skončíme s následujícím grafem:

Tento graf ukazuje, že Devin Townsend hraje v kapele, hrál na albu, které skupina vydala, a také album produkoval.

Začněme tedy vytvořením uzlu pro Devin Townsend:

CREATE (p:Person { Name: "Devin Townsend" })

Nyní vytvořte vztahy a vraťte graf:

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

Nyní byste měli vidět graf jako na předchozím snímku obrazovky.


  1. Dva sloupce v poddotazu v klauzuli where

  2. SQL Cross Join

  3. Používání ODBC se Salesforce a Okta Single Sign On (SSO)

  4. Jak nevytvářet rozšíření PostgreSQL 9.0 na platformách RPM