Cypher 查询语言

这是 Cypher,Neo4j 的查询语言。在许多方面,如果你熟悉它,Cypher 与 SQL 类似,除了 SQL 指的是存储在表中的项目,而 Cypher 指的是存储在图形中的项目。

首先,我们应该从学习如何创建图表和添加关系开始,因为这基本上就是 Neo4j 的全部内容。

CREATE (ab:Object { age: 30, destination: "England", weight: 99 })
  • 你使用 CREATE 来创建数据
  • 要指示节点,请使用括号:()
  • ab:Object 部分可以按如下方式细分:变量’ab’和新节点的标签’Object’。请注意,变量可以是任何变量,但你必须在 Cypher Query 行中保持一致
  • 要向节点添加属性,请使用括号:{}括号

接下来,我们将学习如何找到 MATCH

MATCH (abc:Object) WHERE abc.destination = "England" RETURN abc;

MATCH 指定你要搜索某个节点/关系模式(abc:Object)是指一个节点 Pattern(带有标签 Object),它将匹配存储在变量 abc 中。你可以将整行视为以下内容

abc =  find the matches that is an Object WHERE the destination is England.

在这种情况下,WHERE 添加一个约束,即目标必须是英格兰。你必须在所有 MATCH 查询的末尾包含一个返回值(neo4j 不会只接受匹配…你的查询必须始终返回一些值[这也取决于你正在编写的查询类型…我们将更多地讨论稍后我们将介绍你可以制作的其他类型的查询]。

在我们讨论了 Cypher 查询语言的更多元素之后,将在未来解释下一行。这是为了让你体验一下我们用这种语言可以做些什么! 下面,你将找到一个示例,其中包含标题以 T 开头的电影

MATCH (actor:Person)-[:ACTED_IN]->(movie:Movie)
WHERE movie.title STARTS WITH "T"
RETURN movie.title AS title, collect(actor.name) AS cast
ORDER BY title ASC LIMIT 10;

完整的命令列表及其语法可在此处的官方 Neo4j Cypher 参考卡中找到