Interroger un graphe avec Cypher
Cypher, le langage de Neo4j : motifs, sens des relations, chemins de longueur variable, agrégats, CREATE et MERGE.
- 24 cartes
- 5 thèmes
- Gratuit
Le programme, thème par thème
Le poids de chaque thème suit celui que lui donne l'examen.
- Notions
- Questions
- Ranger et relier
- Les chiffres
- Mises en situation
Quelques cartes du deck
Motif (pattern) : de quoi s'agit-il ?
Voir la réponse
Description en ASCII d'une forme à trouver dans le graphe : des nœuds entre parenthèses reliés par des relations entre crochets et des flèches.
(a:Personne)-[:AMI]->(b)se lit « une personne a et un nœud b tels que a ait une relation AMI vers b » ; le sens de la flèche compte.Le graphe contient des relations AMI orientées : Léa→Tom, Léa→Inès, Léa→Paul, Tom→Zoé, Inès→Zoé, Zoé→Léa. Que compte
MATCH (p)-[:AMI]->(:Personne {nom:'Léa'}) RETURN count(p)?- 1
- 3
- 4
- 6
Voir la réponse
1
La flèche arrive sur Léa : on compte ceux qui la désignent comme amie. Seule Zoé le fait. Les trois amis que Léa désigne seraient comptés en inversant la flèche.
En Cypher, la clause … filtre les occurrences d'un motif, et la clause … choisit les colonnes du résultat.
Voir la réponse
En Cypher, la clause WHERE filtre les occurrences d'un motif, et la clause RETURN choisit les colonnes du résultat.
MATCH (p:Personne) WHERE p.age > 30 RETURN p.nomenchaîne les trois clauses dans cet ordre.MATCH … RETURN : de quoi s'agit-il ?
Voir la réponse
Les deux clauses d'une lecture : la première cherche toutes les occurrences d'un motif, la seconde choisit ce qui est rendu pour chacune.
Chaque occurrence du motif donne une ligne : un nœud atteint par deux chemins apparaît deux fois, sauf
RETURN DISTINCT.