MATCH
de Cypher permet de rechercher des données correspondant à un critère donné. Vous pouvez utiliser MATCH
pour renvoyer les données ou pour effectuer une autre opération dessus.
Le MATCH
déclaration est utilisée pour correspondre à un critère donné, mais elle ne revient pas les données. Pour renvoyer toutes les données d'un MATCH
déclaration, nous devons toujours utiliser le RETURN
clause.
Récupérer un nœud
Voici un exemple simple d'utilisation d'un MATCH
instruction pour récupérer un nœud :
MATCH (p:Person) WHERE p.Name = "Devin Townsend" RETURN p
Le WHERE
La clause fonctionne de la même manière que WHERE
de SQL clause, en ce sens qu'elle vous permet d'affiner les résultats en fournissant des critères supplémentaires.
Cependant, vous pouvez obtenir le même résultat sans utiliser de WHERE
clause. Vous pouvez également rechercher un nœud en fournissant la même notation que vous avez utilisée pour créer le nœud.
Le code suivant fournit les mêmes résultats que l'instruction ci-dessus :
MATCH (p:Person {Name: "Devin Townsend"}) RETURN p
L'exécution de l'une des requêtes ci-dessus entraînera l'affichage du nœud suivant :
Vous avez peut-être remarqué qu'un clic sur un nœud agrandit un cercle extérieur séparé en trois sections, chacune représentant une option différente :
Cliquer sur la section du bas développera les relations du nœud :
Relations
Vous pouvez également parcourir les relations avec le MATCH
déclaration. En fait, c'est l'une des choses pour lesquelles Neo4j est vraiment bon.
Par exemple, si nous voulions savoir quel artiste a sorti l'album intitulé Heavy as a Really Heavy Thing , nous pourrions utiliser la requête suivante :
MATCH (a:Artist)-[:RELEASED]->(b:Album) WHERE b.Name = "Heavy as a Really Heavy Thing" RETURN a
Cela renverra le nœud suivant :
Vous pouvez voir que le modèle que nous utilisons dans le MATCH
déclaration est presque explicite. Il correspond à tous les artistes qui ont sorti un album qui portait le nom de Heavy as a Really Heavy Thing .
Nous utilisons des variables (c'est-à-dire a
et b
) afin que nous puissions nous y référer plus tard dans la requête. Nous n'avons fourni aucune variable pour la relation, car nous n'avons pas eu besoin de faire référence à la relation plus tard dans la requête.
Vous remarquerez peut-être également que la première ligne utilise le même modèle que celui que nous avons utilisé pour créer la relation en premier lieu. Cela met en évidence la simplicité du langage Cypher. Nous pouvons utiliser les mêmes modèles dans différents contextes (c'est-à-dire pour créer des données et pour récupérer des données).
Renvoyer tous les nœuds
Vous pouvez renvoyer tous les nœuds de la base de données simplement en omettant les détails de filtrage. Par conséquent, la requête suivante renverra tous les nœuds de la base de données :
MATCH (n) RETURN n
Il en résulte que tous nos nœuds sont renvoyés :
Vous pouvez également cliquer sur les Lignes icône sur le côté pour afficher les données au format ligne :
Soyez prudent lorsque vous renvoyez tous les nœuds. Faire cela sur une grande base de données pourrait avoir des implications majeures sur les performances. Il est généralement recommandé de limiter les résultats pour éviter les problèmes imprévus.
Voir "Limiter les résultats" ci-dessous.
Limiter les résultats
Utilisez LIMIT
pour limiter le nombre d'enregistrements dans la sortie. C'est une bonne idée de l'utiliser lorsque vous n'êtes pas sûr de la taille de l'ensemble de résultats.
Nous pourrions donc simplement ajouter LIMIT 5
à l'instruction précédente pour limiter la sortie à 5 enregistrements :
MATCH (n) RETURN n LIMIT 5