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.
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?)
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.
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.
Copyright © 2012 Neo Technology