Working with the UNWIND clause
We saw the usage of FOREACH
in the previous section and explored how we can iterate a list and update the graph. But, its usage is limited. If we want to retrieve data from a graph based on the data in a list before we can update the graph, then it is not possible with FOREACH
. The UNWIND
clause allows us to be able to do this. Also, if we want to return some data while processing a list, then UNWIND
is the option to do this.
Let’s take a look at the query we built to add a label in the previous section and build it using UNWIND
:
MATCH (p:Patient) WHERE p.marital IS NULL WITH collect(p) as nodes UNWIND nodes as n SET n:UNKNOWN_STATUS
This does exactly what the FOREACH
query did earlier. We find the patients who do not have a marital
property set, and then we collect those nodes into a list and unwind that list to process one node at a time.
We can see from the screenshot that we updated 388
nodes, which is exactly what happened when...