GraphGists

Cypher 简介 - 社交电影数据库

领域模型和设置

我们的示例图包含具有 ID、年份和标题的电影,以及具有名称的演员。演员与电影之间具有 ACTS_IN 关系,表示他们扮演的角色,角色关系也具有角色属性。

cineasts

我们鼓励您在交互式控制台中手动输入 Cypher 语句,但您也可以单击查询以运行它们。

就像这个

MATCH (n)
RETURN "Hello Graph with "+count(*)+" Nodes!"
as welcome;

使用 Cypher 的第一步

返回单个节点,通过 ID (黑客帝国)

MATCH (movie:Movie {title:"The Matrix"})
RETURN movie;

返回黑客帝国节点的标题和 ID

MATCH (movie:Movie {title:"The Matrix"})
RETURN movie.id, movie.title;

第一次使用 MATCH 子句,显示所有演员

MATCH (m:Movie {title:"The Matrix"})<-[:ACTS_IN]-(actor)
RETURN actor;

仅返回名称,按名称排序

MATCH (m:Movie {title:"The Matrix"})<-[:ACTS_IN]-(actor)
RETURN actor.name order by actor.name;

第一个聚合,计算演员数量

MATCH (m:Movie {title:"The Matrix"})<-[:ACTS_IN]-(actor)
RETURN count(*);

第一个过滤,仅过滤名称以“s”结尾的演员

MATCH (m:Movie {title:"The Matrix"})<-[:ACTS_IN]-(actor)
WHERE actor.name =~ ".*s$"
RETURN actor.name;

插曲:探索数据集

一些用于未知数据集的探索性查询,不要在实时生产实例上执行此操作

计算节点数量

MATCH (n)
RETURN count(*);

计算关系类型数量

MATCH (n)-[r]->()
RETURN type(r), count(*);

列出所有节点及其关系

MATCH (n)-[r]->(m)
RETURN n as from, r as `->`, m as to;

接下来是 更新图