![精通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=1739025742-IH7hiKqXPN1ukTXwJTFj7MVoNNhncfFT-0-14057c76a8aa1cf81d17167fa05f688c)
图3-15 FOREACH图例
3.3.12.1 标记路径上的所有节点
这个查询将设置路径上所有节点的marked属性为true值。
查询:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P182_102722.jpg?sign=1739025742-ylDviDGnigoNSqemoPXH1HnWAQeVPapM-0-04be872e520a24e152ac459abd404bff)
本查询无返回,但设置了4个属性。
结果:
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P182_101846.jpg?sign=1739025742-H1PeUczMMxYlVaGlydGn7GhaJ2sQFDQV-0-3fdb16e28d00ea6ba81c7e50ea35358c)
3.3.12.2 从列表中创建朋友
下面的查询将列表中的人全部加为A的朋友。
![](https://epubservercos.yuewen.com/84FE89/26581284601284906/epubprivate/OEBPS/Images/Figure-P182_102723.jpg?sign=1739025742-MDvLkXGGbs3kTiPbj151cy2q6blzJMaq-0-8575111a1bf1649e14a43aaabefa4735)
本查询无返回,但创建了三个节点,每个节点添加了标签Person和设置了name属性,并将这三个节点与A之间建立FRIEND关系。