Neo4j - Foreach 子句
FOREACH 子句用于更新列表中的数据,无论是路径的组成部分还是聚合结果。
语法
以下是 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)
示例
在继续该示例之前,请在 Neo4j 数据库中创建一个路径 p,如下所示。
CREATE p = (Dhawan {name:"Shikar Dhawan"})-[:TOPSCORRER_OF]->(Ind{name: "India"})-[:WINNER_OF]->(CT2013{name: "Champions Trophy 2013"}) RETURN p
下面是一个 Cypher 查询示例,它使用 FOREACH 子句向路径上的所有节点添加属性。
MATCH p = (Dhawan)-[*]->(CT2013) WHERE Dhawan.name = "Shikar Dhawan" AND CT2013.name = "Champions Trophy 2013" FOREACH (n IN nodes(p)| SET n.marked = TRUE)
要执行上述查询,请执行以下步骤 −
第 1 步 − 打开 Neo4j 桌面应用程序并启动 Neo4j 服务器。 使用 URL http://localhost:7474/ 打开 Neo4j 的内置浏览器应用程序,如下面的屏幕截图所示。
第 2 步 − 将所需的查询复制并粘贴到 $ 美元提示符中,然后按以下屏幕截图中突出显示的player按钮(以执行查询)。
结果
执行后,您将得到以下结果。
验证
要验证节点的创建,请在美元提示符中键入并执行以下查询。
MATCH (n) RETURN n
此查询返回数据库中的所有节点(我们将在接下来的章节中详细讨论此查询)。
执行时,此查询会显示创建的节点,如以下屏幕截图所示。