FOREACH

列表路径 是 Cypher® 中的关键概念。FOREACH 子句可用于更新数据,例如对路径中的元素或聚合创建的列表执行更新命令。

FOREACH 圆括号内的变量上下文与圆括号外的变量上下文是分开的。这意味着,如果您在 FOREACHCREATE 一个节点变量,则无法在 foreach 语句之外使用它,除非您匹配以找到它。

FOREACH 圆括号内,您可以执行任何更新命令,例如 SETREMOVECREATEMERGEDELETEFOREACH

如果您想对列表中的每个元素执行额外的 MATCH,则 UNWIND 子句将是更合适的命令。

graph foreach clause

标记路径上的所有节点

此查询将沿路径上的所有节点将属性 marked 设置为 true

查询
MATCH p=(start)-[*]->(finish)
WHERE start.name = 'A' AND finish.name = 'D'
FOREACH (n IN nodes(p) | SET n.marked = true)
表 1. 结果

(空结果)

行数:0
已设置的属性:4