Neo4j - Foreach Clause


The FOREACH clause is used to update data within a list whether components of a path, or result of aggregation.


Following is the syntax of the FOREACH clause.

MATCH p = (start node)-[*]->(end node) 
WHERE start.node = "node_name" AND end.node = "node_name" 
FOREACH (n IN nodes(p)| SET n.marked = TRUE) 


Before proceeding with the example, create a path p in Neo4j database as shown below.

CREATE p = (Dhawan {name:"Shikar Dhawan"})-[:TOPSCORRER_OF]->(Ind{name: 
   "India"})-[:WINNER_OF]->(CT2013{name: "Champions Trophy 2013"}) 

Following is a sample Cypher Query which adds a property to all the nodes along the path using the FOREACH clause.

MATCH p = (Dhawan)-[*]->(CT2013) 
   WHERE = "Shikar Dhawan" AND = "Champions Trophy 2013" 
FOREACH (n IN nodes(p)| SET n.marked = TRUE)

To execute the above query, carry out the following steps −

Step 1 − Open the Neo4j desktop App and start the Neo4j Server. Open the built-in browser app of Neo4j using the URL http://localhost:7474/ as shown in the following screenshot.

Browser App

Step 2 − Copy and paste the desired query in the dollar prompt and press the play button (to execute the query) highlighted in the following screenshot.

For each


On executing, you will get the following result.

Set Properties


To verify the creation of the node, type and execute the following query in the dollar prompt.


This query returns all the nodes in the database (we will discuss this query in detail in the coming chapters).

On executing, this query shows the created node as shown in the following screenshot.

Created Result