1】基本匹配和返回:查找所有节点和关系,返回节点的标签和属性。
sql
MATCH (n)
RETURN n;
2】条件筛选:查找所有名为 "Alice" 的人物节点。
sql
MATCH (person:Person {name: 'Alice'})
RETURN person;
3】关系查询:查找所有和 "Alice" 有关系的电影节点。
sql
MATCH (:Person {name: 'Alice'})-[:ACTED_IN]->(movie:Movie)
RETURN movie;
4】多条件筛选:查找 1990 年之后发行的电影。
sql
MATCH (movie:Movie)
WHERE movie.released > 1990
RETURN movie;
5】返回特定属性:查找 "Alice" 所参演的电影名称。
sql
MATCH (:Person {name: 'Alice'})-[:ACTED_IN]->(movie:Movie)
RETURN movie.title;
6】返回多个节点属性:查找电影 "The Matrix" 的导演和演员的名字。
sql
MATCH (movie:Movie {title: 'The Matrix'})<-[:DIRECTED|ACTED_IN]-(person)
RETURN person.name;
7】深度优先遍历:查找和 "Alice" 有关系的人物及其关系,最多深度为 2。
sql
MATCH (alice:Person {name: 'Alice'})-[*1..2]-(related)
RETURN alice, related;
8】返回节点数量:统计电影节点的数量。
sql
MATCH (movie:Movie)
RETURN count(movie);
9】组合查询:查找 "Alice" 和 "Bob" 共同参演的电影。
sql
MATCH (alice:Person {name: 'Alice'})-[:ACTED_IN]->(movie:Movie)<-[:ACTED_IN]-(bob:Person {name: 'Bob'})
RETURN movie.title;
10】排序和限制:查找前 5 部发行年份最晚的电影。
sql
MATCH (movie:Movie)
RETURN movie
ORDER BY movie.released DESC
LIMIT 5;