FOREACH 列表 和 路径 是 Cypher® 中的关键概念。FOREACH 子句可用于更新数据,例如对路径中的元素或聚合创建的列表执行更新命令。 FOREACH 圆括号内的变量上下文与圆括号外的变量上下文是分开的。这意味着,如果您在 FOREACH 内 CREATE 一个节点变量,则无法在 foreach 语句之外使用它,除非您匹配以找到它。 在 FOREACH 圆括号内,您可以执行任何更新命令,例如 SET、REMOVE、CREATE、MERGE、DELETE 和 FOREACH。 如果您想对列表中的每个元素执行额外的 MATCH,则 UNWIND 子句将是更合适的命令。 标记路径上的所有节点 此查询将沿路径上的所有节点将属性 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 FINISH LIMIT