diff --git a/neo4j.md b/neo4j.md index b63ddbf..12674a3 100644 --- a/neo4j.md +++ b/neo4j.md @@ -20,6 +20,39 @@ Chaque nœud peut avoir : Les relations relient deux nœuds et ont elles aussi un type et des propriétés : -``` +```cypher (:Person {name: "Sigourney"})-[:JOUE { role: "Ellen" }]->(:Film {title: "Alien"}) ``` + +JOUE est le type de relation. + +{ role: "Ellen" } est une propriété de cette relation. + +Les relations sont orientées : elles vont d’un nœud source vers un nœud cible `-[]->`. + +## Le langage Cypher + +Cypher est le langage de requête de Neo4j, inspiré de SQL mais adapté aux graphes. + +### Trouver un noeud + +```cypher +MATCH (p:Person { name: "Sigourney" }) +RETURN p; +``` + +### Trouver des relations directes + +```cypher +MATCH (a:Person)-[:KNOWS]->(b:Person) +RETURN a.name, b.name; +``` + +### Trouver des chemins + +```cypher +MATCH path = (a:Person {name:"Alice"})-[:KNOWS*1..3]->(b:Person) +RETURN path; +``` + +[:KNOWS*1..3] cherche des chemins de 1 à 3 sauts.