Skip to content

Latest commit

 

History

History
63 lines (59 loc) · 1.63 KB

File metadata and controls

63 lines (59 loc) · 1.63 KB

Definition

A declarative, pattern matching graph querying language.

Examples

Basic Queries

// query over all nodes
START n=node(*) 
WHERE has(n.name) AND n.name = "Tom Hanks" 
RETURN n;
// create a node
CREATE ({title:"Mystic River", released:1993});
// add properties
START a=node(*) 
MATCH (a) 
WHERE a.title =Mystic RiverSET movie.released = 2003 
RETURN movie;
// add relationships
CREATE UNIQUE (kevin)-[:ACTED_IN {roles:["Sean"]}]->(movie) 
WHERE movie.title =Mystic RiverAND kevin.name =Kevin Bacon
// delete nodes and relationships
MATCH (emil)-[r]->() 
WHERE emil.name =Emil EifremDELETE r, emil;

Complex Queries

MATCH (gene)-[:ACTED_IN]->(movie)<-[:ACTED_IN]-(n)
WHERE (n)-[:DIRECTED]->() AND gene.name =Gene HackmanRETURN DISTINCT n.name;

MATCH (keanu)-[:ACTED_IN]->(movie)<-[:ACTED_IN]-(n) 
WHERE NOT((hugo)-[:ACTED_IN]->(movie)) 
	AND keanu.name =Keanu ReevesAND hugo.name =Hugo WeaverRETURN DISTINCT n.name;

MATCH (actor)-[r:ACTED_IN]->(movie)
WHERE "Neo" IN r.roles 
	AND actor.name =Keanu ReevesRETURN DISTINCT movie.title;

// matching multiple relationships
START a=node(*) 
MATCH (a)-[:ACTED_IN|DIRECTED]->()<- [:ACTED_IN|DIRECTED]-(b) 
CREATE UNIQUE (a)-[:KNOWS]->(b);

// variable length paths (here length 2)
MATCH (keanu)-[:KNOWS*2]->(fof) 
WHERE keanu.name =Keanu ReevesRETURN DISTINCT fof.name