Tout comme la création de nœuds dans Neo4j, nous pouvons utiliser le CREATE
pour créer des relations entre ces nœuds.
L'instruction de création d'une relation consiste en CREATE
, suivi des détails de la relation que vous créez.
Exemple
Créons une relation entre certains des nœuds que nous avons créés précédemment. Commençons par créer une relation entre un artiste et un album.
Nous allons créer la relation suivante :
Voici le chiffrement CREATE
déclaration pour créer la relation ci-dessus :
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
Explication du code ci-dessus
Tout d'abord, nous utilisons un MATCH
pour trouver les deux nœuds entre lesquels nous voulons créer la relation.
Il peut y avoir plusieurs nœuds avec un Artiste ou Album label afin que nous le réduisions aux seuls nœuds qui nous intéressent. Dans ce cas, nous utilisons une valeur de propriété pour le filtrer. Nous utilisons le Nom propriété que nous avions précédemment attribuée à chaque nœud.
Ensuite, il y a le véritable CREATE
déclaration. C'est ce qui crée la relation. Dans ce cas, il référence les deux nœuds par le nom de la variable (c'est-à-dire a
et b
) que nous leur avons donné en première ligne. La relation est établie à l'aide d'un modèle de code ASCII, avec une flèche indiquant la direction de la relation :(a)-[r:RELEASED]->(b)
.
Nous donnons à la relation un nom de variable de r
et donner à la relation un type de RELEASED
(comme dans "ce groupe sorti cet album"). Le type de relation est analogue à l'étiquette d'un nœud.
Ajouter plus de relations
L'exemple ci-dessus est un exemple très simple d'une relation. L'une des choses pour lesquelles Neo4j est vraiment doué est la gestion de nombreuses relations interconnectées.
Construisons sur la relation que nous venons d'établir, afin que nous puissions voir à quel point il est facile de continuer à créer plus de nœuds et de relations entre eux. Nous allons donc créer un nœud supplémentaire et ajouter deux autres relations.
Nous finirons par le graphique suivant :
Ce graphique montre que Devin Townsend joue dans le groupe, a joué sur l'album que le groupe a sorti, et il a également produit l'album.
Commençons donc par créer le nœud pour Devin Townsend :
CREATE (p:Person { Name: "Devin Townsend" })
Créez maintenant les relations et renvoyez le graphique :
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
Vous devriez maintenant voir le graphique comme dans la capture d'écran précédente.