diff options
Diffstat (limited to 'cypher.html.markdown')
| -rw-r--r-- | cypher.html.markdown | 21 | 
1 files changed, 20 insertions, 1 deletions
| diff --git a/cypher.html.markdown b/cypher.html.markdown index 32868354..5fe113a2 100644 --- a/cypher.html.markdown +++ b/cypher.html.markdown @@ -93,7 +93,6 @@ path = shortestPath( (user)-[:KNOWS*..5]-(other) )  // Tree navigation   (root)<-[:PARENT*]-(leaf:Category)-[:ITEM]->(data:Product) -  ``` @@ -101,13 +100,16 @@ Create queries  ---  Create a new node +  ```  CREATE (a:Person {name:"Théo Gauchoux"})  RETURN a  ``` +  *`RETURN` allows to have a result after the query. It can be multiple, as `RETURN a, b`.*  Create a new relationship (with 2 new nodes) +  ```  CREATE (a:Person)-[k:KNOWS]-(b:Person)  RETURN a,k,b @@ -117,36 +119,42 @@ Match queries  ---  Match all nodes +  ```  MATCH (n)  RETURN n  ```  Match nodes by label +  ```  MATCH (a:Person)  RETURN a  ```  Match nodes by label and property +  ```  MATCH (a:Person {name:"Théo Gauchoux"})  RETURN a  ```  Match nodes according to relationships (undirected) +  ```  MATCH (a)-[:KNOWS]-(b)  RETURN a,b  ```  Match nodes according to relationships (directed) +  ```  MATCH (a)-[:MANAGES]->(b)  RETURN a,b  ```  Match nodes with a `WHERE` clause +  ```  MATCH (p:Person {name:"Théo Gauchoux"})-[s:LIVES_IN]->(city:City)  WHERE s.since = 2015 @@ -154,6 +162,7 @@ RETURN p,state  ```  You can use `MATCH WHERE` clause with `CREATE` clause +  ```  MATCH (a), (b)  WHERE a.name = "Jacquie" AND b.name = "Michel" @@ -165,6 +174,7 @@ Update queries  ---  Update a specific property of a node +  ```  MATCH (p:Person)  WHERE p.name = "Théo Gauchoux" @@ -172,6 +182,7 @@ SET p.age = 23  ```  Replace all properties of a node +  ```  MATCH (p:Person)  WHERE p.name = "Théo Gauchoux" @@ -179,6 +190,7 @@ SET p = {name: "Michel", age: 23}  ```  Add new property to a node +  ```  MATCH (p:Person)  WHERE p.name = "Théo Gauchoux" @@ -186,6 +198,7 @@ SET p + = {studies: "IT Engineering"}  ```  Add a label to a node +  ```  MATCH (p:Person)  WHERE p.name = "Théo Gauchoux" @@ -197,6 +210,7 @@ Delete queries  ---  Delete a specific node (linked relationships must be deleted before) +  ```  MATCH (p:Person)-[relationship]-()  WHERE p.name = "Théo Gauchoux" @@ -204,14 +218,17 @@ DELETE relationship, p  ```  Remove a property in a specific node +  ```  MATCH (p:Person)  WHERE p.name = "Théo Gauchoux"  REMOVE p.age  ``` +  *Pay attention to the `REMOVE`keyword, it's not `DELETE` !*  Remove a label from a specific node +  ```  MATCH (p:Person)  WHERE p.name = "Théo Gauchoux" @@ -219,11 +236,13 @@ DELETE p:Person  ```  Delete entire database +  ```  MATCH (n)  OPTIONAL MATCH (n)-[r]-()  DELETE n, r  ``` +  *Seriously, it's the `rm -rf /` of Cypher !* | 
