Neo4j 简明教程

Neo4j - Foreach Clause

FOREACH 子句用于更新列表中的数据,无论这些数据是路径的组件还是聚合的结果。

Syntax

以下是 FOREACH 子句的语法。

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)

Example

在继续示例之前,请按如下所示在 Neo4j 数据库中创建一个路径 p

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

以下是一个使用 FOREACH 子句为路径中的所有节点添加属性的示例 Cypher 查询。

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

执行上述查询,执行以下步骤:

Step 1 - 打开 Neo4j Desktop App 并启动 Neo4j Server。使用 URL http://localhost:7474/ 打开 Neo4j 的内置浏览器应用,如下面的屏幕截图所示。

browser app

Step 2 - 在美元提示符中复制并粘贴所需的查询,并按播放按钮(执行查询)突出显示在下面的屏幕截图中。

for each

Result

执行后,您将获得以下结果。

set properties

Verification

要验证节点的创建,请在美元提示符中键入并执行以下查询。

MATCH (n) RETURN n

此查询返回数据库中的所有节点(我们将在即将到来的章节中详细讨论此查询)。

执行此查询后,将显示创建的节点,如下图所示。

created result