Mysql
 sql >> Database >  >> RDS >> Mysql

Neo4j - Crea una relazione usando Cypher

Proprio come la creazione di nodi in Neo4j, possiamo usare CREATE istruzione per creare relazioni tra quei nodi.

L'istruzione per la creazione di una relazione è composta da CREATE , seguito dai dettagli della relazione che stai creando.

Esempio

Creiamo una relazione tra alcuni dei nodi che abbiamo creato in precedenza. Innanzitutto, creiamo una relazione tra un artista e un album.

Creeremo la seguente relazione:

Ecco il codice CREATE dichiarazione per creare la relazione di cui sopra:

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

Spiegazione del codice di cui sopra

Per prima cosa, utilizziamo un MATCH istruzione per trovare i due nodi tra i quali vogliamo creare la relazione.

Potrebbero esserci molti nodi con un Artista o Album label quindi restringiamo il campo solo ai nodi che ci interessano. In questo caso, utilizziamo un valore di proprietà per filtrarlo. Usiamo il Nome proprietà che avevamo precedentemente assegnato a ciascun nodo.

Poi c'è il vero CREATE dichiarazione. Questo è ciò che crea la relazione. In questo caso, fa riferimento ai due nodi con il nome della variabile (cioè a e b ) che abbiamo dato loro nella prima riga. La relazione viene stabilita utilizzando un modello di codice ASCII, con una freccia che indica la direzione della relazione:(a)-[r:RELEASED]->(b) .

Diamo alla relazione un nome variabile di r e dai alla relazione un tipo di RELEASED (come in "questa band rilasciata questo album"). Il tipo di relazione è analogo all'etichetta di un nodo.

Aggiungere più relazioni

L'esempio sopra è un esempio molto semplice di una relazione. Una delle cose in cui Neo4j è davvero bravo è gestire molte relazioni interconnesse.

Costruiamo sulla relazione che abbiamo appena stabilito, in modo da poter vedere quanto sia facile continuare a creare più nodi e relazioni tra di loro. Quindi creeremo un altro nodo e aggiungeremo altre due relazioni.

Finiremo con il seguente grafico:

Questo grafico mostra che Devin Townsend suona nella band, si è esibito nell'album che la band ha pubblicato e ha anche prodotto l'album.

Quindi iniziamo creando il nodo per Devin Townsend:

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

Ora crea le relazioni e restituisci il grafico:

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

Ora dovresti vedere il grafico come nello screenshot precedente.