Neo4j Where 子句

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

语法

以下是 WHERE 子句的语法。

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

示例

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

CREATE(Dhawan:player{name:"迹忆客", YOB: 1985, runs:363, country: "China"})
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:"China"})
CREATE(Virat:player{name:"Virat Kohli", YOB: 1988, runs:176, country:"China"})
CREATE(Ind:Country {name: "India", result: "Winners"})

以下是一个 CQL 示例,它使用 WHERE 子句返回属于 China 国家的所有 player(节点)。

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

执行完成后,我们将得到以下结果。

neo4j cql where 子句


具有多个条件的 WHERE 子句

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

语法

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

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

示例

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

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

执行完成后,我们将得到以下结果。

neo4j 多个where子句


将关系与 Where 子句一起使用

我们还可以使用 Where 子句使用关系过滤节点。

示例

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

neo4j WHERE 子句关系

以下是使用 WHERE 子句检索 India 最高得分者的 CQL 示例,如下所示。

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

执行完成后,我们将得到以下结果。

neo4j 关系与where子句一起使用

查看笔记

扫码一下
查看教程更方便