sql >> Database >  >> RDS >> Mysql

Neo4j - Creëer een relatie met Cypher

Net zoals het maken van knooppunten in Neo4j, kunnen we de CREATE . gebruiken statement om relaties tussen die knooppunten te creëren.

De instructie voor het maken van een relatie bestaat uit CREATE , gevolgd door de details van de relatie die u aan het maken bent.

Voorbeeld

Laten we een relatie maken tussen enkele van de knooppunten die we eerder hebben gemaakt. Laten we eerst een relatie leggen tussen een artiest en een album.

We maken de volgende relatie:

Hier is de code CREATE statement om de bovenstaande relatie te creëren:

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

Uitleg van de bovenstaande code

Eerst gebruiken we een MATCH statement om de twee knooppunten te vinden waartussen we de relatie willen creëren.

Er kunnen veel knooppunten zijn met een Artiest of Album label, dus we beperken het tot alleen die knooppunten waarin we geïnteresseerd zijn. In dit geval gebruiken we een eigenschapswaarde om het naar beneden te filteren. We gebruiken de Naam eigenschap die we eerder aan elk knooppunt hadden toegewezen.

Dan is er nog de daadwerkelijke CREATE uitspraak. Dit is wat de relatie creëert. In dit geval verwijst het naar de twee knooppunten met de variabelenaam (d.w.z. a en b ) die we ze in de eerste regel hebben gegeven. De relatie wordt tot stand gebracht met behulp van een ASCII-codepatroon, met een pijl die de richting van de relatie aangeeft:(a)-[r:RELEASED]->(b) .

We geven de relatie de variabelenaam r en geef de relatie het type RELEASED (zoals in "deze band uitgebracht) dit album"). Het type relatie is analoog aan het label van een knooppunt.

Meer relaties toevoegen

Het bovenstaande voorbeeld is een heel eenvoudig voorbeeld van een relatie. Een van de dingen waar Neo4j echt goed in is, is het omgaan met veel onderling verbonden relaties.

Laten we voortbouwen op de relatie die we zojuist tot stand hebben gebracht, zodat we kunnen zien hoe gemakkelijk het is om door te gaan met het maken van meer knooppunten en relaties daartussen. We zullen dus nog een knoop maken en nog twee relaties toevoegen.

We eindigen met de volgende grafiek:

Deze grafiek laat zien dat Devin Townsend in de band speelt, speelde op het album dat de band uitbracht en ook het album produceerde.

Dus laten we beginnen met het maken van het knooppunt voor Devin Townsend:

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

Maak nu de relaties en retourneer de grafiek:

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

U zou nu de grafiek moeten zien zoals in de vorige schermafbeelding.


  1. Koppeltekens in kolomnamen in MySQL DB

  2. SQLiteException:niet-herkend token bij lezen uit database

  3. Hoe te SELECTEREN UIT opgeslagen procedure

  4. PostgreSQL:coderingsproblemen op Windows bij gebruik van psql-opdrachtregelhulpprogramma