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 https://:7474/ 開啟 Neo4j 的內建瀏覽器應用程式,如下面的螢幕截圖所示。

Browser App

步驟 2 - 將所需的查詢複製並貼上到美元提示符中,然後按下播放按鈕(以執行查詢),如下面的螢幕截圖中突出顯示的那樣。

Where Player

結果

執行後,您將獲得以下結果。

Where Result

包含多個條件的 WHERE 子句

您還可以使用 WHERE 子句來驗證多個條件。

語法

以下是使用 WHERE 子句在 Neo4j 中包含多個條件的語法。

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 https://:7474/ 開啟 Neo4j 的內建瀏覽器應用程式,如下面的螢幕截圖所示。

Browser App

步驟 2 - 將所需的查詢複製並貼上到美元提示符中,然後按下播放按鈕(以執行查詢),如下面的螢幕截圖中突出顯示的那樣。

Return Player

結果

執行後,您將獲得以下結果。

Condition Result

使用關係與 WHERE 子句

您還可以使用 WHERE 子句透過關係來過濾節點。

示例

假設我們在資料庫中有以下圖形。

Assumed Database

以下是一個示例 Cypher 查詢,用於使用 WHERE 子句檢索印度的最佳射手,如下所示。

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

要執行上述查詢,請執行以下步驟:

步驟 1 - 開啟 Neo4j 桌面應用程式並啟動 Neo4j 伺服器。使用 URL https://:7474/ 開啟 Neo4j 的內建瀏覽器應用程式,如下面的螢幕截圖所示。

Browser App

步驟 2 - 將所需的查詢複製並貼上到美元提示符中,然後按下播放按鈕(以執行查詢),如下面的螢幕截圖中突出顯示的那樣。

Winners Result

結果

執行後,您將獲得以下結果。在這裡,您可以觀察到 Neo4j 返回了該節點,該節點與名稱為印度的節點具有 TOP_SCORER_OF 關係。

Returned Node
廣告