72+ operators across read, write, projection, composition, schema, and skill categories. Complete reference below.
| Operator | Syntax | Since |
|---|
| MATCH (node) | MATCH (n:Label) | 0.2.0 |
| MATCH (relationship) | MATCH (a)-[r:TYPE]->(b) | 0.2.0 |
| MATCH (variable-length) | MATCH (a)-[:TYPE*1..3]->(b) | 0.5.0 |
| MATCH (property shorthand) | MATCH (n:Label {key: value}) | 0.3.0 |
| OPTIONAL MATCH | OPTIONAL MATCH (a)-[r]->(b) | 0.9.0 |
| WHERE = | WHERE n.key = value | 0.2.0 |
| WHERE <> | WHERE n.key <> value | 0.6.0 |
WHERE > < >= <= | WHERE n.age > 25 | 0.6.0 |
| WHERE AND/OR/NOT | WHERE a AND NOT b | 0.6.0 |
| WHERE IN | WHERE n.name IN ['Alice', 'Bob'] | 0.20.0 |
| WHERE IS NULL | WHERE n.email IS NULL | 0.15.0 |
| WHERE IS NOT NULL | WHERE n.email IS NOT NULL | 0.15.0 |
| WHERE CONTAINS | WHERE n.name CONTAINS 'li' | 0.6.0 |
| WHERE STARTS WITH | WHERE n.name STARTS WITH 'A' | 0.6.0 |
| WHERE ENDS WITH | WHERE n.name ENDS WITH 'ce' | 0.17.0 |
| WHERE EXISTS() | WHERE EXISTS(n.email) | 0.6.0 |
| WHERE =~ (regex) | WHERE n.name =~ '.*son$' | 0.17.0 |
| WHERE id(n) = N | WHERE id(n) = 42 | 0.21.0 |
| shortestPath | shortestPath (a:L {k:v}), (b:L {k:v}) | 0.6.0 |
| Operator | Syntax | Since |
|---|
| CREATE (node) | CREATE (n:Label {props}) | 0.2.0 |
| CREATE (relationship) | CREATE (a:L)-[:T]->(b:L) | 0.4.0 |
| MERGE | MERGE (n:Label {key: value}) | 0.5.0 |
| DELETE | MATCH (n) WHERE ... DELETE n | 0.2.0 |
| DETACH DELETE | MATCH (n) WHERE ... DETACH DELETE n | 0.20.0 |
| SET | MATCH (n) WHERE ... SET n.k = v | 0.3.0 |
| REMOVE | MATCH (n) WHERE ... REMOVE n.k | 0.8.0 |
| Operator | Syntax | Since |
|---|
| RETURN | RETURN expr, expr | 0.2.0 |
| RETURN * | RETURN * | 0.15.0 |
| RETURN ... AS | RETURN n.name AS name | 0.7.0 |
| DISTINCT | RETURN DISTINCT expr | 0.4.0 |
| ORDER BY | ORDER BY expr [ASC|DESC] | 0.4.0 |
| SKIP | SKIP n | 0.7.0 |
| LIMIT | LIMIT n | 0.4.0 |
| Operator | Syntax | Since |
|---|
| WITH | MATCH (n) WITH n WHERE ... RETURN n | 0.21.0 |
| CASE WHEN | CASE WHEN cond THEN val ELSE val END | 0.12.0 |
| UNWIND | UNWIND list AS item | 0.12.0 |
| UNION | query1 UNION query2 | 0.22.0 |
| Arithmetic | n.age + 1, n.salary * 1.1 | 0.23.0 |
| Operator | Syntax | Notes |
|---|
| IS LABELED | WHERE n IS LABELED :Person | Label predicate |
| ELEMENT_ID | RETURN ELEMENT_ID(n) | Stable element identifier |
| NEXT WHEN/THEN/ELSE/END | RETURN count(*) NEXT WHEN c > 10 THEN ... ELSE ... END | Conditional pipeline |
| START TRANSACTION | START TRANSACTION [READ ONLY | READ WRITE] | Explicit transaction |
| COMMIT / ROLLBACK | COMMIT / ROLLBACK | Transaction control |
| Operator | Syntax | Since |
|---|
| CREATE INDEX | CREATE INDEX ON :Label(prop) | 0.10.0 |
| DROP INDEX | DROP INDEX ON :Label(prop) | 0.15.0 |
| CREATE CONSTRAINT (UNIQUE) | CREATE CONSTRAINT ON :Label(prop) ASSERT UNIQUE | 0.14.0 |
| CREATE CONSTRAINT (PRIMARY KEY) | CREATE CONSTRAINT ON :Label(prop) ASSERT PRIMARY KEY | current |
| CREATE CONSTRAINT (SEMANTIC UNIQUE) | CREATE CONSTRAINT ON :Label(prop) ASSERT SEMANTIC UNIQUE THRESHOLD 0.95 | current |
| DROP CONSTRAINT | DROP CONSTRAINT ON (n:L) ASSERT n.k IS UNIQUE | 0.15.0 |
| Function | Since |
|---|
count(expr) | 0.4.0 |
sum(expr) | 0.4.0 |
avg(expr) | 0.4.0 |
collect(expr) | 0.4.0 |
| Category | Functions |
|---|
| Introspection | id(), labels(), type() |
| Conversion | toString(), toInteger(), toFloat() |
| Null | coalesce() |
| String | toUpper, toLower, trim, left, right, substring, replace, split, reverse |
| Procedure | Since |
|---|
db.nodeCount/relCount/labels/types/keys/version | 0.19.0 |
db.indexes/constraints/stats/procedures | 0.19-0.20 |
algo.pageRank | 0.26.0 |
algo.connectedComponents | 0.26.0 |
algo.communityDetection | 0.26.0 |
| Operator | Syntax | Since |
|---|
| CREATE SKILL | CREATE SKILL name FROM PROMPT '...' ALLOWED ON [...] TIER SYMBOLIC | 0.2.0 |
| PROCESS NODE | PROCESS NODE (n:Label) | 0.3.0 |
| REPROCESS EDGES | REPROCESS EDGES WHERE confidence < 0.6 | 0.4.0 |
| Operator | Since |
|---|
| EXPLAIN | 0.7.0 |
| PROFILE | 0.22.0 |