LIMIT
LIMIT constrains the number of returned rows.
LIMIT accepts any expression that evaluates to a positive INTEGER and does not refer to nodes or relationships.
| Neo4j does not guarantee the results generated by LIMIT.
The only clause that guarantees a specific row order isORDER BY. | 
Example graph
The following graph is used for the examples below:
To recreate it, run the following query against an empty Neo4j database:
CREATE
  (andy: Person {name: 'Andy'}),
  (bernard: Person {name: 'Bernard'}),
  (charlotte: Person {name: 'Charlotte'}),
  (david: Person {name: 'David'}),
  (erika: Person {name: 'Erika'}),
  (andy)-[:KNOWS]->(bernard),
  (andy)-[:KNOWS]->(charlotte),
  (andy)-[:KNOWS]->(david),
  (andy)-[:KNOWS]->(erika)Examples
To return a limited subset of the rows, use this syntax:
MATCH (n)
RETURN n.name
ORDER BY n.name
LIMIT 3Limit to 3 rows by the example query.
| n.name | 
|---|
| 
 | 
| 
 | 
| 
 | 
| Rows: 3 | 
LIMIT to return a subset of the rowsLIMIT accepts any expression that evaluates to a positive integer, as long as it can be statically calculated (i.e. calculated before the query is run).
MATCH (n)
RETURN n.name
ORDER BY n.name
LIMIT 1 + toInteger(3 * rand())Limit 1 row plus randomly 0, 1, or 2. So randomly limit to 1, 2, or 3 rows.
| n.name | 
|---|
| 
 | 
| 
 | 
| 
 | 
| Rows: 3 | 
LIMIT and side effects
The use of LIMIT in a query will not stop side effects, like CREATE, DELETE, or SET, from happening if the limit is in the same query part as the side effect.
CREATE (n)
RETURN n
LIMIT 0This query returns nothing, but creates one node:
| 
 | 
| Rows: 0 | 
MATCH (n {name: 'A'})
SET n.age = 60
RETURN n
LIMIT 0This query returns nothing, but writes one property:
| 
 | 
| Rows: 0 | 
If we want to limit the number of updates we can split the query using the WITH clause:
MATCH (n)
WITH n ORDER BY n.name LIMIT 1
SET n.locked = true
RETURN n
ORDER BY n.nameWrites locked property on one node and return that node:
| n | 
|---|
| 
 | 
| Rows: 1 | 
Using LIMIT as a standalone clause
LIMITMATCH (n)
LIMIT 2
RETURN collect(n.name) AS names| names | 
|---|
| 
 | 
| 
 | 
The following query orders all nodes by name descending, skips the two first rows and limits the results to two rows.
It then collects the results in a list.
LIMIT used in conjunction with ORDER BY and SKIPMATCH (n)
ORDER BY n.name DESC
SKIP 2
LIMIT 2
RETURN collect(n.name) AS names| names | 
|---|
| 
 | 
| 
 |