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.