This section is showing how to create some of the named pretty graphs on Wikipedia.
The graph is created by first creating a center node, and then once per element in the range, creates a leaf node and connects it to the center.
Query
CREATE center foreach( x in range(1,6) : CREATE leaf, center-[:X]->leaf ) RETURN id(center) as id;
The query returns the id of the center node.
Try this query live. start n=node(*) match n-[r?]->() delete n, r; create center foreach( x in range(1,6) : create leaf, center-[:X]->leaf ) return id(center) as id;
Graph
This graph is created in a number of steps:
Query
CREATE center foreach( x in range(1,6) : CREATE leaf={count:x}, center-[:X]->leaf ) ==== center ==== MATCH large_leaf<--center-->small_leaf WHERE large_leaf.count = small_leaf.count + 1 CREATE small_leaf-[:X]->large_leaf ==== center, min(small_leaf.count) as min, max(large_leaf.count) as max ==== MATCH first_leaf<--center-->last_leaf WHERE first_leaf.count = min AND last_leaf.count = max CREATE last_leaf-[:X]->first_leaf RETURN id(center) as id
The query returns the id of the center node.
Try this query live. start n=node(*) match n-[r?]->() delete n, r; CREATE center foreach( x in range(1,6) : CREATE leaf={count:x}, center-[:X]->leaf ) ==== center ==== MATCH large_leaf<--center-->small_leaf WHERE large_leaf.count = small_leaf.count + 1 CREATE small_leaf-[:X]->large_leaf ==== center, min(small_leaf.count) as min, max(large_leaf.count) as max ==== MATCH first_leaf<--center-->last_leaf WHERE first_leaf.count = min AND last_leaf.count = max CREATE last_leaf-[:X]->first_leaf RETURN id(center) as id
Graph
For this graph, a root node is created, and used to hang a number of nodes from. Then, two nodes are selected, hanging from the center, with the requirement that the id of the first is less than the id of the next. This is to prevent double relationships and self relationships. Using said match, relationships between all these nodes are created. Lastly, the center node and all relationships connected to it are removed.
Query
CREATE center foreach( x in range(1,6) : CREATE leaf={count : x}, center-[:X]->leaf ) ==== center ==== MATCH leaf1<--center-->leaf2 WHERE id(leaf1)<id(leaf2) CREATE leaf1-[:X]->leaf2 ==== center ==== MATCH center-[r]->() DELETE center,r;
Nothing is returned by this query.
Result
Nodes created: 7 |
---|
Relationships created: 21 |
Properties set: 6 |
Nodes deleted: 1 |
Relationships deleted: 6 |
16 ms |
|
Try this query live. start n=node(*) match n-[r?]->() delete n, r; create center foreach( x in range(1,6) : create leaf={count : x}, center-[:X]->leaf ) ==== center ==== MATCH leaf1<--center-->leaf2 WHERE id(leaf1)<id(leaf2) CREATE leaf1-[:X]->leaf2 ==== center ==== MATCH center-[r]->() DELETE center,r;
Graph
This query first creates a center node, and then once per element in the range, creates a cycle graph and connects it to the center
Query
CREATE center foreach( x in range(1,3) : CREATE leaf1, leaf2, center-[:X]->leaf1, center-[:X]->leaf2, leaf1-[:X]->leaf2 ) RETURN ID(center) as id
The id of the center node is returned by the query.
Try this query live. start n=node(*) match n-[r?]->() delete n, r; CREATE center foreach( x in range(1,3) : CREATE leaf1, leaf2, center-[:X]->leaf1, center-[:X]->leaf2, leaf1-[:X]->leaf2 ) RETURN ID(center) as id
Graph
Copyright © 2012 Neo Technology