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.

  1. Notions
  2. Questions
  3. Ranger et relier
  4. Les chiffres
  5. 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.nom enchaî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.