neo4j电影库-关系查询

关系类型数量源数据目标数据属性
ACTED_IN172演员电影roles(角色扮演)属性,属性值为数组
DIRECTED44导演电影
PRODUCED15制片商电影
WROTE10作家电影
FOLLOWS3影评人影评人
REVIEWED9影评人电影summary(影评摘要)和 rating(评分)属性

【先按照书本整理下,等理解加深后,再加对应注释】

序号查询目的脚本
1查找所有相关电影、人物、关系MATCH (n) RETURN n
2查找名为“Tom Hanks”的人物MATCH (person{name:"Tom Hanks"}) RETURN person
3随机查找10个人物的人名MATCH (people:Person) RETURN people.name LIMIT 10
4随机查找10个人物MATCH (people:Person) RETURN people LIMIT 10
5查找1990-2000年之间发行的电影名称

MATCH (nineties:Movie)

WHERE nineties.released>1990 AND nineties.released<2000

RETURN nineties.title,nineties.released

ORDER BY nineties.released

6查找"Tom Hanks"参演过的电影名称

MATCH (people:Person{name:"Tom Hanks"})-[:ACTED_IN]->(actorMovies)

RETURN people,actorMovies

7查找谁导演了电影“Cloud Atlas”

MATCH (move {title:"Cloud Atlas"}) <- [:DIRECTED] - (directors)

RETURN directors.name

8查找与Tom Hanks一同出演过电影的人

MATCH (people:Person{name:"Tom Hanks"})-[:ACTED_IN]->(m)<-[:ACTED_IN]-(acActors)

RETURN acActors.name,m.title

9查找与电影"Cloud Atlas"相关的人

MATCH (people:Person) - [relatedTo] - (movie:Movie {title:"Cloud Atlas"})

RETURN people.name,Type(relatedTo),relatedTo,movie.title

10查找与演员"Kevin Bacon"存在4条及以内关系的任何演员和电影

MATCH (people:Person{name:"Kevin Bacon"}) - [*1..4] - (hollywood)

RETURN DISTINCT hollywood

11查找与演员"Kevin Bacon"与"Meg Ryan"之间的最短关系路径

MATCH p=shortestPath((people:Person{name:"Kevin Bacon"}) - [*] - (other:Person{name:"Meg Ryan"}))

RETURN p

12查找没有与Tom Hanks合作过的演员

1、先找到Tom Hanks还没有合作过的演员,但Tom Hanks的合作伙伴曾经与其合作过

2、找到一个可以向他的潜在合作者介绍Tom Hanks的人

MATCH (people:Person{name:"Tom Hanks"}) - [:ACTED_IN]->(m)<-[:ACTED_IN]-(others),

(others)-[:ACTED_IN]->(m2)<-[:ACTED_IN]-(otherothers)

WHERE NOT (people)- [:ACTED_IN]->(m2)

RETURN otherothers.name AS Recommended,count(*) AS Strength

ORDER BY Strength DESC

13找人将Tom Hanks介绍给Tom Cruise

MATCH

(tom:Person{name:"Tom Hanks"})-[:ACTED_IN]->(m)<-[:ACTED_IN]-(others),

(others)-[:ACTED_IN]->(m2)<-[:ACTED_IN]-(cruise:Person{name:"Tom Cruise"})

RETURN tom,m,others,m2,cruise

14匹配某个电影相关的演员和导演等多种关系

MATCH (movie:Movie{title:'The Matrix Reloaded'})<-[:ACTED_IN|DIRECTED]-(person)

RETURN person.name

15单条最短路径shortestPath函数

MATCH (apeople:Person{name:'Tom Hanks'}),(bpeople:Person{name:'Tom Cruise'}),

p=shortestPath((apeople)-[*..4]-(bpeople))

RETURN p

16所有最短路径allshortestPaths函数

MATCH (apeople:Person{name:'Tom Hanks'}),(bpeople:Person{name:'Tom Cruise'}),

p=allshortestPaths((apeople)-[*..4]-(bpeople))

RETURN p

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值