Neo4j -Where 子句

与 SQL 一样,Neo4j CQL 在 CQL MATCH 命令中提供了 WHERE 子句来过滤 MATCH 查询的结果。

语法

以下是 WHERE 子句的语法。

MATCH (label)  
WHERE label.country = "property" 
RETURN label 

示例

在继续该示例之前,请在数据库中创建五个节点,如下所示。

CREATE(Dhawan:player{name:"shikar Dhawan", YOB: 1985, runs:363, country: "India"}
CREATE(Jonathan:player{name:"Jonathan Trott", YOB:1981, runs:229, country:"South Africa"}
CREATE(Sangakkara:player{name:"Kumar Sangakkara", YOB:1977, runs:222, 
   country:"Srilanka"})
CREATE(Rohit:player{name:"Rohit Sharma", YOB: 1987, runs:177, country:"India"})
CREATE(Virat:player{name:"Virat Kohli", YOB: 1988, runs:176, country:"India"})
CREATE(Ind:Country {name: "India", result: "Winners"})

以下是一个示例 Cypher 查询,它使用 WHERE 子句返回属于印度国家的所有玩家(节点)。

MATCH (player)  
WHERE player.country = "India" 
RETURN player 

要执行上述查询,请执行以下步骤 −

第 1 步 − 打开 Neo4j 桌面应用程序并启动 Neo4j 服务器。 使用 URL http://localhost:7474/ 打开 Neo4j 的内置浏览器应用程序,如下面的屏幕截图所示。

浏览器应用程序

第 2 步 − 将所需的查询复制并粘贴到 $ 美元提示符中,然后按以下屏幕截图中突出显示的player按钮(以执行查询)。

Where Player

结果

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

WHERE 结果

具有多个条件的 WHERE 子句

您还可以使用 WHERE 子句来验证多个条件。

语法

以下是在 Neo4j 中使用具有多个条件的 WHERE 子句的语法。

MATCH (emp:Employee)  
WHERE emp.name = 'Abc' AND emp.name = 'Xyz' 
RETURN emp 

示例

以下是一个示例 Cypher 查询,它使用两个条件过滤 Neo4j 数据库中的节点。

MATCH (player)  
WHERE player.country = "India" AND player.runs >=175 
RETURN player 

要执行上述查询,请执行以下步骤 −

第 1 步 − 打开 Neo4j 桌面应用程序并启动 Neo4j 服务器。 使用 URL http://localhost:7474/ 打开 Neo4j 的内置浏览器应用程序,如下面的屏幕截图所示。

浏览器应用程序

第 2 步 − 将所需的查询复制并粘贴到 $ 美元提示符中,然后按以下屏幕截图中突出显示的player按钮(以执行查询)。

Return Player

结果

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

条件结果

使用与Where子句的关系

您还可以使用Where子句通过关系来过滤节点。

示例

假设我们的数据库中有以下图表。

假定数据库

下面是一个使用 WHERE 子句检索印度得分最高的 Cypher 查询示例,如下所示。

MATCH (n) 
WHERE (n)-[: TOP_SCORER_OF]->( {name: "India", result: "Winners"}) 
RETURN n 

要执行上述查询,请执行以下步骤 −

第 1 步 − 打开 Neo4j 桌面应用程序并启动 Neo4j 服务器。 使用 URL http://localhost:7474/ 打开 Neo4j 的内置浏览器应用程序,如下面的屏幕截图所示。

浏览器应用程序

第 2 步 − 将所需的查询复制并粘贴到 $ 美元提示符中,然后按以下屏幕截图中突出显示的player按钮(以执行查询)。

Winners Result

结果

执行后,您将得到以下结果。 在这里,您可以观察到 Neo4j 返回了节点,该节点与节点名为 India 的国家具有 TOP_SCORER_OF 关系。

Returned Node