Filtering with node labels and relationship types
In Cypher, filtering starts with the usage of node labels and relationship types. Let us take a look at a query where we do not apply any filters in Cypher:
MATCH p=()—-() RETURN p
This query returns all paths where any nodes are connected. In this query, there is no filtering. This query is shown to illustrate the fact that filtering is a bit different from SQL queries. Now, let us take a look at this query:
MATCH p=()—->() RETURN p
In this query, we are not using any node labels or relationship types, but we are filtering on relationships by outgoing direction:
MATCH p=(:Patient)—->() RETURN p
When we look at this query, we are looking for Patient
nodes first and traversing all the outgoing relationships to find the paths. This showcases how node labels are leveraged for filtering:
MATCH p=(:Patient)-[:HAS_ZIPCODE]->() RETURN p
This query applies one more filter to the previous...