Cypher语句-查找关系的深度

本文详细介绍了Cypher查询语言在处理图数据库中关系深度和变长路径的操作。从多关系表达、可变长关系的使用,到零长路径和命名路径的查询,以及匹配一簇关系的方法,全面展示了Cypher如何灵活地查找和操作图数据。通过实例,读者可以理解如何查询Kevin Pollak参演的电影及其导演,以及如何获取与他多跳关系的电影。这些内容对于理解和应用图数据库查询具有重要价值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

查找关系的深度
1、多个关系
关系可以多语句以()–()的形式来表达,或者它们相互连接在一起
查询’Kevin Pollak’演的电影和该电影的导演

MATCH(charlie{name:'Kevin Pollak'})-[:ACTED_IN]->(movie)<-[:DIRECTED]-(director)
return movie.title,director.name

在这里插入图片描述

在这里插入图片描述

2、可变长关系
可变长关系和节点的语法如下:

-[:TYPE*minHops..maxHops]->

minHops和maxHops都是可选的,默认值分别为1和无穷大。当没有边界值的时候,点也可以省略。当只设置了一个边界的时候,如果点省略了就意味着是一个固定长度的模式
查询

查询返回与’Kevin Pollak’关系为1跳到3跳的所有电影

MATCH(martin{name:'Kevin Pollak'})-[:ACTED_IN*1..3]-(movie:Movie)
return movie.title

在这里插入图片描述

3、变长关系的关系变量
当连接两个节点之间的长度是变长的,那么关系变量返回是将可能是一个关系列表
返回与’Kevin Pollak’关系为2跳的节点之间关系

MATCH(actor{name:'Kevin Pollak'})-[r:ACTED_IN*2]-(co_actor) 
return r

在这里插入图片描述

4、零长路径
如果变长路径的下界值为零,则意味着两个变量指向同一个节点
查询电影’Hoffa’本身以及一级跳关系的演员和导演

MATCH(wallstreet:Movie{title:'Hoffa'})-[*0..1]-(x) 
return x

在这里插入图片描述

5、命名路径
如果想返回或者需要对路径进行过滤,可以将路径赋值给一个变量
返回从开始’Kevin Pollak’的路径

MATCH p =(Hoffa { name: 'Kevin Pollak' })-->()
return p

在这里插入图片描述

6、匹配一簇关系
当模式包含一簇关系时,关系模式不会指定方向,Cypher将尝试匹配两个方向的关系
查询返回两个相连的节点,一个为开始节点,一个为结束节点

MATCH (a)-[r]-(b) 
where id(r)=30 
return a,b

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值