2. Neo4j 基础入门.md 2.9 KB

2.1 创建电影节点

CREATE(TheMatrix:Movie {title: 'The Matrix', released:1999, tagline: 'Welcome to the Real World'});

2.2 创建人物节点

CREATE (Keanu:Person {name: 'Keanu Reeves', born:1964});

2.3 创建演员、导演关系

CREATE
(Keanu)-[:ACTED_IN {roles:['Neo']}]->(TheMatrix),
(Carrie)-[:ACTED_IN {roles:['Trinity']}]->(TheMatrix),
(Laurence)-:ACTED_IN {roles:['Morpheus']}]->(TheMatrix),
(Hugo)-[:ACTED_IN {roles:['Agent Smith']}]->(TheMatrix),
(LillyW)-[:DIRECTED]->(TheMatrix),
(LanaW)-[:DIRECTED]->(TheMatrix),
(JoelS)-[:PRODUCED]->(TheMatrix);

2.4 查找名为“Tom Hanks”的人物

MATCH (tom {name: "Tom Hanks"}) RETURN tom;

2.5 随机查找10个人物的人名

MATCH (people:Person) RETURN people.name LIMIT 10;

2.6 查找名为“Cloud Atlas”的电影

MATCH (cloudAtlas {title: "Cloud Atlas"}) RETURN cloudAtlas;

2.7 查找1990年到2000年发行的电影的名称

MATCH (nineties:Movie)
WHERE nineties.released > 1990 AND nineties.released < 2000
RETURN nineties.title;

2.8 查找“Tom Hanks”参演过的电影的名称

MATCH (tom:Person {name: "Tom Hanks"})-[:ACTED_IN]->(tomHanksMovies) RETURN tom, tomHanksMovies;

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

MATCH (cloudAtlas {title: "Cloud Atlas"})<-[:DIRECTED]-(directors) RETURN directors.name;

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

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

2.11 查找与电影“Cloud Atlas”相关的所有人

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

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

MATCH (bacon:Person {name: "Kevin Bacon"})-[*1..4]-(hollywood) RETURN DISTINCT hollywood;

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

MATCH p=shortestPath(
(bacon:Person {name: "Kevin Bacon"})-[*]-(meg:Person {name: "Meg Ryan"})
)
RETURN p;

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

MATCH (tom:Person {name: "Tom Hanks"})-[:ACTED_IN]->(m)<-[:ACTED_IN]-(coActors),
(coActors)-[:ACTED_IN]->(m2)<-[:ACTED_IN]-(cocoActors)
WHERE NOT (tom)-[:ACTED_IN]->(m2)
RETURN cocoActors.name As Recommended, count(*) As Strength
ORDER BY Strength DESC;

2.15 查找可以将Tom Hanks介绍给Tom Cruise的演员

MATCH (tom:Person {name: "Tom Hanks"})-[:ACTED_IN]->(m)<-[:ACTED_IN]-(coActors),
(coActors)-[:ACTED_IN]->(m2)<-[:ACTED_IN]-(cruise:Person {name: "Tom Cruise"}) RETURN tom, m, coActors, m2, cruise;

2.16 清空所有Person、Movie节点及其所有关系

MATCH (a:Person), (m:Movie)
OPTIONAL MATCH (a)-[r1]-(), (m)-[r2]-()
DELETE a,r1,m,r2;

2.17 查询任意数据

MATCH (n) RETURN n;