sql >> Databasteknik >  >> RDS >> Mysql

Neo4j - Skapa ett förhållande med Cypher

Precis som att skapa noder i Neo4j kan vi använda CREATE uttalande för att skapa relationer mellan dessa noder.

Satsen för att skapa en relation består av CREATE följt av informationen om relationen som du skapar.

Exempel

Låt oss skapa en relation mellan några av noderna som vi skapade tidigare. Låt oss först skapa en relation mellan en artist och ett album.

Vi skapar följande relation:

Här är cyphern CREATE uttalande för att skapa ovanstående relation:

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

Förklaring av koden ovan

Först använder vi en MATCH för att hitta de två noder som vi vill skapa relationen mellan.

Det kan finnas många noder med en artist eller Album etikett så att vi begränsar den till bara de noder vi är intresserade av. I det här fallet använder vi ett egenskapsvärde för att filtrera ner det. Vi använder namnet egenskap som vi tidigare tilldelat varje nod.

Sedan finns det den faktiska CREATE påstående. Det är detta som skapar relationen. I det här fallet refererar den till de två noderna med variabelnamnet (dvs a och b ) som vi gav dem i första raden. Relationen upprättas genom att använda ett ASCII-kodmönster, med en pil som indikerar riktningen för relationen:(a)-[r:RELEASED]->(b) .

Vi ger relationen variabelnamnet r och ge relationen en typ av RELEASED (som i "det här bandet släppt detta album"). Relationens typ är analog med en nods etikett.

Lägga till fler relationer

Ovanstående exempel är ett mycket enkelt exempel på ett förhållande. En av de saker som Neo4j är riktigt bra på är att hantera många sammanlänkade relationer.

Låt oss bygga vidare på relationen som vi just etablerat, så att vi kan se hur lätt det är att fortsätta skapa fler noder och relationer mellan dem. Så vi kommer att skapa en nod till och lägga till ytterligare två relationer.

Vi kommer att sluta med följande graf:

Den här grafen visar att Devin Townsend spelar i bandet, uppträdde på albumet som bandet släppte, och han producerade även albumet.

Så låt oss börja med att skapa noden för Devin Townsend:

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

Skapa nu relationerna och returnera grafen:

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

Du bör nu se grafen som i föregående skärmdump.


  1. Python Postgres psycopg2 ThreadedConnectionPool är slut

  2. Varför behöver du datamodellering?

  3. Vilolägeskommentar för PostgreSQL seriell typ

  4. Hekaton med en twist:In-memory TVPs – Del 2