Most functions in Cypher will return null if the input parameter is null.
Here is a list of the functions in Cypher, seperated into three different sections: Predicates, Scalar functions and Aggregated functions
Graph
Predicates are boolean functions that return true or false for a given set of input.
They are most commonly used to filter out subgraphs in the WHERE
part of a query.
Tests whether a predicate holds for all element of this iterable collection.
Syntax: ALL(identifier in iterable WHERE predicate)
Arguments:
Query
START a=node(3), b=node(1) MATCH p=a-[*1..3]->b WHERE all(x in nodes(p) WHERE x.age > 30) RETURN p
All nodes in the path.
Tests whether a predicate holds for at least one element of this iterable collection.
Syntax: ANY(identifier in iterable WHERE predicate)
Arguments:
Query
START a=node(2) WHERE any(x in a.array WHERE x = "one") RETURN a
All nodes in the path.
Returns true if the predicate holds for no element in the iterable.
Syntax: NONE(identifier in iterable WHERE predicate)
Arguments:
Query
START n=node(3) MATCH p=n-[*1..3]->b WHERE NONE(x in nodes(p) WHERE x.age = 25) RETURN p
All nodes in the path.
Returns true if the predicate holds for exactly one of the elements in the iterable.
Syntax: SINGLE(identifier in iterable WHERE predicate)
Arguments:
Query
START n=node(3) MATCH p=n-->b WHERE SINGLE(var in nodes(p) WHERE var.eyes = "blue") RETURN p
All nodes in the path.
Result
p |
---|
1 row, 1 ms |
|
Scalar functions return a single value.
To return or filter on the length of a path, use the special property LENGTH
Syntax: LENGTH( iterable )
Arguments:
Query
START a=node(3) MATCH p=a-->b-->c RETURN length(p)
The length of the path p.
Returns a string representation of the relationship type.
Syntax: TYPE( relationship )
Arguments:
Query
START n=node(3) MATCH (n)-[r]->() RETURN type(r)
The relationship type of r.
Returns the id of the relationship or node
Syntax: ID( property-container )
Arguments:
Query
START a=node(3, 4, 5) RETURN ID(a)
The node id for three nodes.
Returns the first non-null value in the list of expressions passed to it.
Syntax: COALESCE( expression [, expression]* )
Arguments:
Query
START a=node(3) RETURN coalesce(a.hairColour?, a.eyes?)
HEAD returns the first element in a collection.
Syntax: HEAD( expression )
Arguments:
Query
START a=node(2) RETURN a.array, head(a.array)
The first node in the path
Iterable functions return an iterable of things - nodes in a path, and so on.
Returns all nodes in a path
Syntax: NODES( path )
Arguments:
Query
START a=node(3), c=node(2) MATCH p=a-->b-->c RETURN NODES(p)
All the nodes in the path p.
Result
NODES(p) |
---|
1 row, 0 ms |
|
Returns all relationships in a path
Syntax: RELATIONSHIPS( path )
Arguments:
Query
START a=node(3), c=node(2) MATCH p=a-->b-->c RETURN RELATIONSHIPS(p)
All the nodes in the path p.
To return a single property, or the value of a function from an iterable of nodes or relationships,
you can use EXTRACT. It will go through all enitities in the iterable, and run an expression, and return the results
in an iterable with these values. It works like the map
method in functional languages such as Lisp and Scala.
Syntax: EXTRACT( identifier in iterable : expression )
Arguments:
Query
START a=node(3), b=node(4), c=node(1) MATCH p=a-->b-->c RETURN extract(n in nodes(p) : n.age)
The age property of all nodes in the path.
FILTER returns all the elements in an iterable that comply to a predicate.
Syntax: FILTER(identifier in iterable : predicate)
Arguments:
Query
START a=node(2) RETURN a.array, filter(x in a.array : length(x) = 3)
The first node in the path
TAIL returns all but the first element in a collection.
Syntax: TAIL( expression )
Arguments:
Query
START a=node(2) RETURN a.array, tail(a.array)
The first node in the path
These functions all operate on numerical expressions only, and will return an error if used on any other values.
Returns the absolute value of a number
Syntax: ABS( expression )
Arguments:
Query
START a=node(3), c=node(2) RETURN a.age, c.age, abs(a.age - c.age)
The absolute value of age difference
ROUND returns the numerical expression, rounded to the nearest integer.
Syntax: ROUND( expression )
Arguments:
Query
START a=node(1) RETURN round(3.141592)
SQRT returns the square root of a number
Syntax: SQRT( expression )
Arguments:
Query
START a=node(1) RETURN sqrt(256)
All the nodes in the path p.
Returns the signum of a number - zero if the expression is zero, -1 for any negative number, and 1 for any positive number.
Syntax: SIGN( expression )
Arguments:
Query
START n=node(1) RETURN sign(-17), sign(0.1)
All the nodes in the path p.
Copyright © 2012 Neo Technology