图数据库(五):Neo4j中Cypher语言查询操作

查询节点match

match(d:Disease) return d

条件查询

match(d:Disease {oid: "xxx1"}) return d

返回Return

return 的作用是在match匹配上了以后,选择哪些返回,如果能确定返回的属性,尽量不要全部返回!如果没有匹配上,则没有任何信息返回。

  • Return的语法很简单,需要什么就返回什么,*表示返回所有的。
MATCH p =(a { name: 'A' })-[r]->(b) RETURN *   # 返回a,b,r,p match中提到的所有信息

返回的结果就是所有的信息: 

  • return中,还可以像传统sql那样,通过as来改名
MATCH (a { name: 'A' }) RETURN a.age AS NewName  # 将返回的结果字典的key由n.age改为NewName
  • 对于没有属性的会返回一个null,比如:
MATCH (n) RETURN n.age # 如果n没有age属性,则返回null

MATCH (n) RETURN n.age  # 如果返回的多个结果,有age这个属性正常返回,没有age属性的返回null。
  • 还可以运行一个布尔运算,并且也支持返回多个元素:
MATCH (a { name: 'A' })
RETURN a.age > 30, "literal",a   # 可以返回三个值,第一个是bool值,第二个是字符串,第三个是节点
  • 也可以和DISTINCT连着用
MATCH (a { name: 'A' })-->(b) RETURN DISTINCT b  # 可以去除重复的节点

OPTIONAL MATCH

这个和match差不多,区别在于当没有查到东西的时候,会返回一个null,下面例子是前面match上,后面match不上的时候,会返回null,如果前面match不上也不会返回值

match(p:Person {name: 'reba'}) optional match (p) -->(x) return x  # 存在name为’reba'的人,但是其与其他人没有关系,那么会返回null,如果'reba'这个人名不存在则没有任何返回信息

即如果把optional去掉,结果是:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值