neo4j语法-match

图片.png

查询所有节点

查询语句
match (n)
return n

没有指出是某种节点则查询所有类型的节点

返回值
n
Node[0]{name:"Charlie Sheen"}
Node[1]{name:"Martin Sheen"}
Node[2]{name:"Michael Douglas"}
Node[3]{name:"Oliver Stone"}
Node[4]{name:"Rob Reiner"}
Node[5]{title:"Wall Street"}
Node[6]{title:"The American President"}

查询某一个标签的节点

查询语句
match (movie:Movie)-----(1)
return movie.title -----(2)
  1. 将查询的类型限制在Movie
  2. 只返回类型的title属性
  3. movie是别名,类似sql中的as之后的别名
返回值
movie.title
"Wall Street"
"The American President"

相关节点

查询语句
MATCH (director { name: 'Oliver Stone' })--(movie) -----(1)
RETURN movie.title----(2)
  1. 需要匹配的条件:两个节点有关系、关系没有方向、其中一个节点的name属性值为’Oliver Stone’
    1. 没有带上":类型",就代表是所有节点
    2. “–”表示没有方向
  2. 如果满足上述匹配,但是没有对应的属性值,就显示为空
    1. 比如匹配到一个类型为人的节点,但是这个节点没有title属性,那么这一列返回的值就为null
返回值
movie.title
"Wall Street"

在匹配的情况下加上标签约束

查询语句
MATCH (:Person { name: 'Oliver Stone' })--(movie:Movie)
RETURN movie.title
  1. 匹配条件:标签为Person的节点和标签为Movie的节点有关联、Person节点的名称为“Oliver Stone”
返回值
movie.title
"Wall Street"

查询外部关系

查询语句
MATCH (:Person { name: 'Oliver Stone' })-->(movie)
RETURN movie.title
返回值
movie.title
"Wall Street"

查询关系

查询语句
MATCH (:Person { name: 'Oliver Stone' })-[r]->(movie)
RETURN type(r)

查询关系类型

返回值
type(r)
"DIRECTED"

查询特定关系类型

查询语句
MATCH (wallstreet:Movie { title: 'Wall Street' })<-[:ACTED_IN]-(actor)----(1)
RETURN actor.name
  1. :ACTED_IN表示关系为“ACTED_IN”类型
返回值
actor.name
"Michael Douglas"
"Martin Sheen"
"Charlie Sheen"

同时匹配多个关系

查询条件
MATCH (wallstreet { title: 'Wall Street' })<-[:ACTED_IN|:DIRECTED]-(person)---(1)
RETURN person.name
  1. 匹配关系为“ACTED_IN”或"DIRECTED"类型
返回值
person.name
"Oliver Stone"
"Michael Douglas"
"Martin Sheen"
"Charlie Sheen"

查询关系的属性

查询条件
MATCH (wallstreet { title: 'Wall Street' })<-[r:ACTED_IN]-(actor)
RETURN r.role
返回值
r.role
"Gordon Gekko"
"Carl Fox"
"Bud Fox"

图片.png

在Charlie Sheen和Rob Reiner中添加关系

使用“`”来避免类型中的空值

查询条件
MATCH (n { name: 'Rob Reiner' })-[r:`TYPE WITH SPACE`]->()
RETURN type(r)
返回值
type(r)
"TYPE WITH SPACE"

匹配多个关系

查询条件
MATCH (charlie { name: 'Charlie Sheen' })-[:ACTED_IN]->(movie)<-[:DIRECTED]-(director)
RETURN movie.title, director.name
返回值
movie.title 		director.name
"Wall Street"		"Oliver Stone"

可变长度的关系

查询条件
MATCH (martin { name: 'Charlie Sheen' })-[:ACTED_IN*1..3]-(movie:Movie)
RETURN movie.title

查询距离为1~3的和Charlie有关的电影

返回值
movie.title
"Wall Street"
"The American President"
"The American President"

查询连接的关系列表

查询条件
MATCH p =(actor { name: 'Charlie Sheen' })-[:ACTED_IN*2]-(co_actor)
RETURN relationships(p)

当两个节点之间的连接长度可变时,可以使用以下语法返回组成连接的关系列表

返回值
relationships(p)
[:ACTED_IN[0]{role:"Bud Fox"},:ACTED_IN[1]{role:"Carl Fox"}]
[:ACTED_IN[0]{role:"Bud Fox"},:ACTED_IN[2]{role:"Gordon Gekko"}]

图片.png

根据id获取节点

查询条件
MATCH (n)
WHERE id(n)= 0
RETURN n
返回值
n
Node[0]{name:"Charlie Sheen"}

根据id获取关系

查询条件
MATCH ()-[r]->()
WHERE id(r)= 0
RETURN r
返回值
r
:ACTED_IN[0]{role:"Bud Fox"}

多个节点的id查询

查询条件
MATCH (n)
WHERE id(n) IN [0, 3, 5]
RETURN n
返回值
n
Node[0]{name:"Charlie Sheen"}
Node[3]{name:"Oliver Stone"}
Node[5]{title:"Wall Street"}
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

leo的心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值