Predicate Functions

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.

Exists(Property)

exists() returns true if the specified property exists in the node, relationship or map. This is different from the EXISTS clause.

Syntax: exists(property)

Returns:

An agtype boolean

Arguments:

Name Description
property A property from a vertex or edge

Query

SELECT *
FROM cypher('graph_name', $$
     MATCH (n)
     WHERE exists(n.surname)
     RETURN n.first_name, n.last_name
$$) as (first_name agtype, last_name agtype);

Results:

first_name last_name
‘John ‘Smith’
‘Patty’ ‘Patterson’
2 row(s) returned

Exists(Path)

EXISTS(path) returns true if for the given path, there already exists the given path.

SELECT *
FROM cypher('graph_name', $$
     MATCH (n)
     WHERE exists((n)-[]-({name: 'Willem Defoe'}))
     RETURN n.full_name
$$) as (full_name agtype);

Results:

full_name
‘Toby Maguire'
‘Tom Holland’
2 row(s) returned