Neo4j 简明教程

Neo4j - Match Clause

在本章中,我们将了解 Match 子句以及可以用此子句执行的所有函数。

Get All Nodes Using Match

使用 Neo4j 的 MATCH 子句,可以检索 Neo4j 数据库中的所有节点。

Example

在继续执行示例之前,请创建 3 个节点和 2 个关系,如下所示。

CREATE (Dhoni:player {name: "MahendraSingh Dhoni", YOB: 1981, POB: "Ranchi"})
CREATE (Ind:Country {name: "India", result: "Winners"})
CREATE (CT2013:Tornament {name: "ICC Champions Trophy 2013"})
CREATE (Ind)-[r1:WINNERS_OF {NRR:0.938 ,pts:6}]->(CT2013)

CREATE(Dhoni)-[r2:CAPTAIN_OF]->(Ind)
CREATE (Dhawan:player{name: "shikar Dhawan", YOB: 1995, POB: "Delhi"})
CREATE (Jadeja:player {name: "Ravindra Jadeja", YOB: 1988, POB: "NavagamGhed"})

CREATE (Dhawan)-[:TOP_SCORER_OF {Runs:363}]->(Ind)
CREATE (Jadeja)-[:HIGHEST_WICKET_TAKER_OF {Wickets:12}]->(Ind)

以下查询返回 Neo4j 数据库中的所有节点。

MATCH (n) RETURN n

执行上述查询,执行以下步骤:

Step 1 - 打开 Neo4j Desktop App 并启动 Neo4j Server。使用 URL http://localhost:7474/ 打开 Neo4j 的内置浏览器应用,如下面的屏幕截图所示。

browser app

Step 2 - 在美元提示符中复制并粘贴所需的查询,并按播放按钮(执行查询)突出显示在下面的屏幕截图中。

match return

Result

执行后,您将获得以下结果。

executing result

Getting All Nodes Under a Specific Label

使用 Match 子句,您可以获取特定标签下的所有节点。

Syntax

以下是获取特定标签的所有节点的语法。

MATCH (node:label)
RETURN node

Example

下面是一个返回数据库中带有标签 player 的所有节点的示例 Cypher 查询。

MATCH (n:player)
RETURN n

执行上述查询,执行以下步骤:

Step 1 - 打开 Neo4j Desktop App 并启动 Neo4j Server。使用 URL http://localhost:7474/ 打开 Neo4j 的内置浏览器应用,如下面的屏幕截图所示。

browser app

Step 2 - 在美元提示符中复制并粘贴所需的查询,并按播放按钮(执行查询)突出显示在下面的屏幕截图中。

n player

Result

执行后,您将获得以下结果。

specific label

Match by Relationship

您可以使用 MATCH 子句基于关系检索节点。

Syntax

以下是使用 MATCH 子句根据关系检索节点的语法。

MATCH (node:label)<-[: Relationship]-(n)
RETURN n

Example

以下是一个基于关系使用 MATCH 子句来检索节点的示例 Cypher 查询。

MATCH (Ind:Country {name: "India", result: "Winners"})<-[: TOP_SCORER_OF]-(n)
RETURN n.name

执行上述查询,执行以下步骤:

Step 1 - 打开 Neo4j Desktop App 并启动 Neo4j Server。使用 URL http://localhost:7474/ 打开 Neo4j 的内置浏览器应用,如下面的屏幕截图所示。

browser app

Step 2 - 在美元提示符中复制并粘贴所需的查询,并按播放按钮(执行查询)突出显示在下面的屏幕截图中。

top scorer

Result

执行后,您将获得以下结果。

match relationship

Delete All Nodes

您可以使用 MATCH 子句删除所有节点。

Query

以下是删除 Neo4j 中所有节点的查询。

MATCH (n) detach delete n

执行上述查询,执行以下步骤:

Step 1 - 打开 Neo4j Desktop App 并启动 Neo4j Server。使用 URL http://localhost:7474/ 打开 Neo4j 的内置浏览器应用,如下面的屏幕截图所示。

browser app

Step 2 - 在美元提示符中复制并粘贴所需的查询,并按播放按钮(执行查询)突出显示在下面的屏幕截图中。

desired press

Result

执行后,您将获得以下结果。

deleted relationship