diff options
Diffstat (limited to 'cypher.html.markdown')
-rw-r--r-- | cypher.html.markdown | 68 |
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. |