MATCH
MATCH (n:Person)-[:KNOWS]->(friend)
WHERE n.age > 25
RETURN n.name, friend.nameFind nodes and relationships by pattern. MATCH is the starting point for every read query.
Syntax#
MATCH (variable:Label) -- by label
MATCH (variable:Label {key: value}) -- by property
MATCH (a)-[r:TYPE]->(b) -- relationships
MATCH (a)-[:TYPE*min..max]->(b) -- variable-length pathsExamples#
All nodes with a label#
MATCH (n:Person) RETURN n[
{"n": {"_id": 0, "_labels": ["Person"], "name": "Alice", "age": 30}},
{"n": {"_id": 1, "_labels": ["Person"], "name": "Bob", "age": 25}}
]Property shorthand filter#
MATCH (n:Person {name: 'Alice'}) RETURN nRelationship traversal#
MATCH (a:Person {name: 'Alice'})-[r:KNOWS]->(b) RETURN b.nameVariable-length paths#
MATCH (a:Person {name: 'Alice'})-[:KNOWS*1..3]->(friend) RETURN friend.nameFinds all people reachable from Alice within 1 to 3 KNOWS hops.
See Also#
- WHERE — filter matched patterns
- RETURN — project results
- shortestPath — find shortest path between nodes
Try it
Open ↗⌘↵ to run
Loading engine…