neo4j 实战、实例、查询示例

检索节点

1. 查找名为 Tom Hanks 的人物

match (tom {name :"Tom Hanks"}) return tom

或者如下

match (tom2 {name :"Tom Hanks"}) return tom2

tom换成tom2,请自行酝酿他们的区别

tom或tom2是类似于mysql的别名

2. 随机查找10个人物的人名

match (people : Person) return people.name limit 10

这里只返回了name属性,就没有用图形化界面返回了

检索关系

1. 查找“Tom Hanks” 参演过的电影

match(tom:Person {name:"Tom Hanks"})-[:ACTED_IN] -> (TomHanksMovies) return tom,TomHanksMovies

首先匹配节点类型为Person、属性为{name:"Tom Hanks"}的节点,然后匹配此节点具有关系[:ACTED_IN],并且此关系指向某个电影节点的节点。

2. 查找谁导演了电影"Cloud Atlas"

match(cloudAtlas {title: "Cloud Atlas"})<- [:DIRECTED]-(directors) return directors.name

多返回一个参数试下

match(cloudAtlas {title: "Cloud Atlas"})<- [:DIRECTED]-(directors) return directors.name,cloudAtlas.title

3. 查找与Tom Hanks同出演过电影的人

match(tom:Person {name:"Tom Hanks"})- [:ACTED_IN]->(m)<- [:ACTED_IN]- (coActors)return coActors.name

上述指令首先匹配节点类型为Person、属性为{name:"Tom Hanks"}的节点,然后匹配此节点通过[:ACTED_IN]关系指向的节点m,并且同时匹配某个节点coActors也通过[:ACTED_IN]关系指向的节点m,然后返回匹配的节点coActors的name属性。

4. 查找与电影Cloud Atlas相关的所有人

match (people:Person) - [relatedTo] - (:Movie {title:"Cloud Atlas"})return people.name , Type(relatedTo),relatedTo

上述指令先匹配节点类型为Person的节点,然后匹配节点类型为Movie、节点属性为{title:"Cloud Atlas"}的节点,最后匹配他们两者之间存在的某种关系(无论是导演还是演员关系)的情况,然后将人名、关系类型、关系同时返回。

猜你喜欢

转载自blog.csdn.net/sinstar1/article/details/82151437