cypher(2)

https://blog.csdn.net/amao1998/article/details/81017560

学习过程中的不容易理解的总结 一下 

1  merge(p:明星{name:"郭麒麟"}) return p

merge如果该节点存在,那么就返回 如果不存在就 直接创建返回 

2 a merge(p:明星{name:"郭小小"}) return *

b merge(p:明星{name:"郭小小"}) on create set p.age=18 return *

如果 执行a 在执行b那么 直接 返回 a节点  a有一个 name 

如果 单独执行b 那么成功 返回 节点有 name 和age 两个属性 

match(n)-[:blocks|knows]->(x)  return x 表示  n关系是 blocks或者knows到x 

match  (n)-[r:blocks]->(x)

match (n)-[r]->(x)return r 

关系是 带有空格的多个单词  用单引号 引起来,会将'type that has space in it' 视为一个整体 不会理解为 空格隔开 

match (n) -[r:'type that has space in it']->() return r 

多条边 :match (a)-[:knows]->(b)-[:konws]->(c)return a,b,c  a出发 经过konws 到达 b在经过konws到达c 

start a=node(3),x=node(2,4) match (a)-[:konws*1..3]->(x) return a,x  从a开始 经过(1-3个) knows到达 x

start a=node(3),x=node(2,4) match (a)-[r:konws*1..3]->(x) return r  

start a=node(3) match p1=a-[:knows*0..1]->b,p2=b-[:blocks*0..1]-> return a,b,c,length(p1),length(p2)

match a-[?]->x return a,x表示 从 a出发 到达x 无论有没有边 /关系 

match a-[r?:konws]->() return a,r 表示从a出发 找一条标为konws的边  然后标志出这条表

start a=node(3) match (a)-[:konws]->(b)-[:knows]->(c),(a)-[:blocks]->(d)-[:knows]->(c) return a,b,c,d 

最短路径: start d=node(1),e=node(2) match p=shortestPath(d-[*..15]->e) return p 

最短路径 比如3可能会有多条 :

start d=node(1),e=node(2) match p=allShortestPaths(d-[*..15]->e) return p 

过滤边 START n=node(3)   MATCH (n)-[r]->()  WHERE type(r) =~ 'K.*' RETURN r

记录路径   start a=node(3) match p=a-->b return p 

START a=node(3), b=node(2) MATCH a-[?:KNOWS]-x-[?:KNOWS]-b  RETURN x       表示 x要不然经knows连接a,要不然连接b,要不然既连接a又要连接b 
start n=node(3,1) where has(n.belt) return n  #has表示 节点有belt这个属性 

start n=node(3,1) where n.belt?='white' return n #表示 如果 n没有belt这个属性那么就返回true 意思就是有没有belt属性都返回 

start n=node(3,1) where n.belt!='white' return n   !=表示 如果 n有belt这个属性就返回true  只返回有belt属性的 

START a=node(3, 4, 5) RETURN ID(a)  对于节点和边有唯一的 id号 返回 相应的id 

START a=node(3) RETURN coalesce(a.hairColour?, a.eyes?) 返回有表达式组成的集合中 第一个非空值

  START a=node(2) RETURN a.array, head(a.array) 返回集合中的第一个值 
START a=node(2)  RETURN a.array, last(a.array)最后一个

START n=node(1) RETURN timestamp()返回当前的时间 
START a=node(3), c=node(2)MATCH p=a-->b-->c RETURN NODES(p) 返回路径上所有的节点 返回值是一个list 
START a=node(3), c=node(2)MATCH p=a-->b-->c RETURN RELATIONSHIPS(p)返回路径上所有的关系 也是一个list 
START a=node(3), b=node(4), c=node(1)MATCH p=a-->b-->c  RETURN extract(n in nodes(p) : n.age) 返回路径上每一个系欸但的 年龄  返回值 【13,45,28】
START a=node(2)  RETURN a.array, filter(x in a.array : length(x) = 3)
START a=node(2)  RETURN a.array, tail(a.array)  #返回除去第一个元素之外的其他元素组成的 list 
删除 带 关系的节点:

start n=node(*),m=node(*) match n-[r]-m delete r delete n 

#删除全部 节点和 关系 

match (n) detach delete n 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值