guneysus
9/13/2016 - 11:44 AM

## cypher-snippets.cql

``````// MATCH (n) DETACH DELETE n
MERGE (a: User {  id: 0  })
MERGE (b: User {  id: 1  })
CREATE (b)-[r2:FOLLOW]->(a)
SET r2 = r1
WITH r1 DELETE r1
// RETURN a,b

//
MATCH (n) DETACH DELETE n

//
MATCH (n) RETURN n

CREATE (a: User {  id: 0  })
CREATE (b: User {  id: 1  })
RETURN a,b,r

CREATE (a: User {  id: 0  })
CREATE (b: User {  id: 1  })
RETURN a,b,ab,ba

CREATE (a: User {  id: 0  })
CREATE (b: User {  id: 1  })
RETURN  a,b,ab,ba

//
// http://www.remwebdevelopment.com/blog/sql/some-basic-and-useful-cypher-queries-for-neo4j-201.html
//

// a. Find the unique labels that appear in the database:
match (n)
return distinct labels(n)

// b. Find the unique relationships that appear in the database:
match (n)-[r]-()
return distinct type(r)

// combine a and b
match (n)-[r]-()
return distinct labels(n), type(r)

// Find nodes that don't have any relationships:
start n=node(*)
optional match (n)-[r]-()
where r is null
return n

// Find all nodes that have a specific property:
start n=node(*)
match (n)
where exists(n.id)
return n

// Find all nodes that have a specific relationship (regardless of the direction of the relationship):
start n=node(*)
match (n)-[:FOLLOW]-()
return distinct n

// Show the nodes and a count of the number of relationships that they have:

start n=node(*)
match (n)-[r]-()
return n, count(r) as rel_count
order by rel_count desc

// Get a count of all nodes in your graph:
start n=node(*)
match (n)
return count(n)

// To delete all nodes in a databse (first you have to delete all relationships)

start n=node(*)
match (n)-[r]-()
delete r
WITH r
start n=node(*)
match (n)
delete n

// A simple query to get nodes of a certain category that match a certain property

match (n:Person) where n.name="Tim" return n``````