![精通Neo4j](https://wfqqreader-1252317822.image.myqcloud.com/cover/113/47216113/b_47216113.jpg)
上QQ阅读APP看书,第一时间看更新
3.3.12 FOREACH语句
FOREACH语句用于更新列表中的数据,或者来自路径的组件,或者来自聚合的结果。
列表和路径是Cypher中的关键概念,可以使用FOREACH来更新其中的数据。它可以在路径或者聚合的列表的每个元素上执行更新命令。FOREACH括号中的变量是与外部分开的,这意味着FOREACH中创建的变量不能用于该语句之外。
在FOREACH括号内,可以执行任何的更新命令,包括CREATE、CREATE UNIQUE、DELETE和FOREACH。如果希望对列表中的每个元素执行额外的MATCH命令,则使用UNWIND命令更合适。FOREACH图例如图3-15所示。
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P181_91320.jpg?sign=1738954349-yLXpsvrzCLbgqAApuUN9Qij7njRg2nD7-0-1185f78614e11b6977d5bc4cb62c11df)
图3-15 FOREACH图例
3.3.12.1 标记路径上的所有节点
这个查询将设置路径上所有节点的marked属性为true值。
查询:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P182_102722.jpg?sign=1738954349-GHGfCnGeaveAoveSsLJ218aZ46loCKuW-0-1b3ab2ac96997db21d11b3b2a42e321e)
本查询无返回,但设置了4个属性。
结果:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P182_101846.jpg?sign=1738954349-XZGRK0F3m0kYbwac4linMLK5nKMoRRrd-0-958a2eb71f168737706ae8c8e431a1d9)
3.3.12.2 从列表中创建朋友
下面的查询将列表中的人全部加为A的朋友。
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P182_102723.jpg?sign=1738954349-MvvqpXKFDbU2NjfSXG1Y8laQKOFSDEr6-0-a298c3f4f42fff5c63b8d237cde71a08)
本查询无返回,但创建了三个节点,每个节点添加了标签Person和设置了name属性,并将这三个节点与A之间建立FRIEND关系。