foreach关键字在很多开发语言里面都会出现,其实他主要就是for循环。在neo4j中,foreach关键字主要是在一条查询语句中设计一条循环的语句。下面我们来演示一下:
1、使用foreach循环创建节点
循环创建节点,一般来说foreach会和with关键字一起连用,下面我们演示下使用foreach语句创建多个节点:
with ['a','b','c'] as tags foreach (value in tags | create (:Car{tag:value}))
这里可以看到我们创建成功了3个节点。
2、从集合中进行筛选更新
第二种常用的方式就是,从关系中查询出来一些集合结果,然后挨个进行更新这样的需求。下面我们来演示一下:
#创建模拟数据 create (a{name:'张三',tag:'1'}) create (b{name:'李四',tag:'1'}) create (c{name:'王五',tag:'1'}) create (a)-[r1:兄弟]->(b) create (b)-[r2:兄弟]->(c) create (c)-[r3:兄弟]->(a) #查询数据 match (n) return n
然后我们使用foreach来查找更新
match p = (a)-[*]-(b) where a.name='张三' and b.name= '李四' foreach (n in nodes(p) | set n.sex='f')
我们看看结果:
看到了吧,没有任何问题。以上就是foreach的基本用法。
备注:
1、这里的图我们看节点没有显示名称,也就是圆里面是空的,这是为什么呢?其实这是因为我们在创建的时候,没有给节点赋予某些实体对象,我们上面演示的创建是:
create (a{name:'张三',tag:'1'})
如果我们在创建的时候赋予了实体对象,那么就会显示了,例如:
create (a:Person{name:'王五',tag:'1'}) return a
看到了吧,也就是a变量的时候指定实体对象,相当于指定类型就会显示出来了。
还没有评论,来说两句吧...