📅  最后修改于: 2020-11-27 06:59:40             🧑  作者: Mango
与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 Query,该查询使用WHERE子句返回属于印度国家/地区的所有玩家(节点)。
MATCH (player)
WHERE player.country = "India"
RETURN player
要执行上述查询,请执行以下步骤-
步骤1-打开Neo4j桌面应用程序并启动Neo4j服务器。使用URL http:// localhost:7474 /打开Neo4j的内置浏览器应用程序,如以下屏幕截图所示。
步骤2-将所需查询复制并粘贴到美元提示中,然后按以下屏幕截图中突出显示的播放按钮(以执行查询)。
执行时,您将得到以下结果。
您还可以使用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-将所需查询复制并粘贴到美元提示中,然后按以下屏幕截图中突出显示的播放按钮(以执行查询)。
执行时,您将得到以下结果。
您还可以使用Where子句使用关系过滤节点。
假设我们在数据库中有以下图形。
以下是一个示例密码查询,它使用WHERE子句检索印度的最佳得分手,如下所示。
MATCH (n)
WHERE (n)-[: TOP_SCORER_OF]->( {name: "India", result: "Winners"})
RETURN n
要执行上述查询,请执行以下步骤-
步骤1-打开Neo4j桌面应用程序并启动Neo4j服务器。使用URL http:// localhost:7474 /打开Neo4j的内置浏览器应用程序,如以下屏幕截图所示。
步骤2-将所需查询复制并粘贴到美元提示中,然后按以下屏幕截图中突出显示的播放按钮(以执行查询)。
执行时,您将得到以下结果。在这里,您可以观察到Neo4j返回了该节点,该节点与该国家/地区具有TOP_SCORER_OF关系,该节点的名称为India。