summaryrefslogtreecommitdiffhomepage
path: root/cypher.html.markdown
diff options
context:
space:
mode:
Diffstat (limited to 'cypher.html.markdown')
-rw-r--r--cypher.html.markdown68
1 files changed, 17 insertions, 51 deletions
diff --git a/cypher.html.markdown b/cypher.html.markdown
index 867474a5..b7be544a 100644
--- a/cypher.html.markdown
+++ b/cypher.html.markdown
@@ -16,29 +16,19 @@ Nodes
**Represents a record in a graph.**
-```
-()
-```
+```()```
It's an empty *node*, to indicate that there is a *node*, but it's not relevant for the query.
-```
-(n)
-```
+```(n)```
It's a *node* referred by the variable **n**, reusable in the query. It begins with lowercase and uses camelCase.
-```
-(p:Person)
-```
+```(p:Person)```
You can add a *label* to your node, here **Person**. It's like a type / a class / a category. It begins with uppercase and uses camelCase.
-```
-(p:Person:Manager)
-```
+```(p:Person:Manager)```
A node can have many *labels*.
-```
-(p:Person {name : 'Théo Gauchoux', age : 22})
-```
+```(p:Person {name : 'Théo Gauchoux', age : 22})```
A node can have some *properties*, here **name** and **age**. It begins with lowercase and uses camelCase.
The types allowed in properties :
@@ -50,9 +40,7 @@ The types allowed in properties :
*Warning : there isn't datetime property in Cypher ! You can use String with a specific pattern or a Numeric from a specific date.*
-```
-p.name
-```
+```p.name```
You can access to a property with the dot style.
@@ -61,24 +49,16 @@ Relationships (or Edges)
**Connects two nodes**
-```
-[:KNOWS]
-```
+```[:KNOWS]```
It's a *relationship* with the *label* **KNOWS**. It's a *label* as the node's label. It begins with uppercase and use UPPER_SNAKE_CASE.
-```
-[k:KNOWS]
-```
+```[k:KNOWS]```
The same *relationship*, referred by the variable **k**, reusable in the query, but it's not necessary.
-```
-[k:KNOWS {since:2017}]
-```
+```[k:KNOWS {since:2017}]```
The same *relationship*, with *properties* (like *node*), here **since**.
-```
-[k:KNOWS*..4]
-```
+```[k:KNOWS*..4]```
It's a structural information to use in a *path* (seen later). Here, **\*..4** says "Match the pattern, with the relationship **k** which be repeated between 1 and 4 times.
@@ -87,24 +67,16 @@ Paths
**The way to mix nodes and relationships.**
-```
-(a:Person)-[:KNOWS]-(b:Person)
-```
+```(a:Person)-[:KNOWS]-(b:Person)```
A path describing that **a** and **b** know each other.
-```
-(a:Person)-[:MANAGES]->(b:Person)
-```
+```(a:Person)-[:MANAGES]->(b:Person)```
A path can be directed. This path describes that **a** is the manager of **b**.
-```
-(a:Person)-[:KNOWS]-(b:Person)-[:KNOWS]-(c:Person)
-```
+```(a:Person)-[:KNOWS]-(b:Person)-[:KNOWS]-(c:Person)```
You can chain multiple relationships. This path describes the friend of a friend.
-```
-(a:Person)-[:MANAGES]->(b:Person)-[:MANAGES]->(c:Person)
-```
+```(a:Person)-[:MANAGES]->(b:Person)-[:MANAGES]->(c:Person)```
A chain can also be directed. This path describes that **a** is the boss of **b** and the big boss of **c**.
Patterns often used (from Neo4j doc) :
@@ -258,19 +230,13 @@ DELETE n, r
Other useful clauses
---
-```
-PROFILE
-```
+```PROFILE```
Before a query, show the execution plan of it.
-```
-COUNT(e)
-```
+```COUNT(e)```
Count entities (nodes or relationships) matching **e**.
-```
-LIMIT x
-```
+```LIMIT x```
Limit the result to the x first results.