Neo4j - SET 語句



使用 SET 語句,您可以為現有的節點或關係新增新的屬性,還可以新增或更新現有的屬性值。

在本章中,我們將討論如何:

  • 設定屬性
  • 刪除屬性
  • 設定多個屬性
  • 為節點設定標籤
  • 為節點設定多個標籤

設定屬性

使用 SET 語句,您可以在節點中建立一個新的屬性。

語法

以下是設定屬性的語法。

MATCH (node:label{properties . . . . . . . . . . . . . . }) 
SET node.property = value 
RETURN node

示例

在繼續示例之前,請先建立一個名為 Dhawan 的節點,如下所示。

CREATE (Dhawan:player{name: "shikar Dhawan", YOB: 1985, POB: "Delhi"}) 

以下是一個示例 Cypher 查詢,用於建立一個名為“highestscore”、值為“187”的屬性。

MATCH (Dhawan:player{name: "shikar Dhawan", YOB: 1985, POB: "Delhi"}) 
SET Dhawan.highestscore = 187 
RETURN Dhawan

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

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

Browser App

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

Match Player

結果

執行後,您將獲得以下結果。在這裡您可以觀察到,在名為“Dhawan”的節點中建立了一個鍵值對為 highestscore/187 的屬性。

Key Value

刪除屬性

您可以透過將NULL作為值傳遞給它來刪除現有屬性。

語法

以下是使用 SET 語句從節點中刪除屬性的語法。

MATCH (node:label {properties}) 
SET node.property = NULL 
RETURN node 

示例

在繼續示例之前,請先建立一個名為“jadeja”的節點,如下所示。

Create (Jadeja:player {name: "Ravindra Jadeja", YOB: 1988, POB: "NavagamGhed"})

以下是一個示例 Cypher 查詢,它使用 SET 語句刪除此節點中名為 POB 的屬性,如下所示。

MATCH (Jadeja:player {name: "Ravindra Jadeja", YOB: 1988, POB: "NavagamGhed"}) 
SET Jadeja.POB = NULL 
RETURN Jadeja 

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

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

Browser App

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

Remove property

結果

執行後,您將獲得以下結果。在這裡您可以觀察到,名為POB的變數已被刪除。

Deleted POB

設定多個屬性

同樣,您可以使用 Set 語句在節點中建立多個屬性。為此,您需要使用逗號指定這些鍵值對。

語法

以下是使用 SET 語句在節點中建立多個屬性的語法。

MATCH (node:label {properties}) 
SET node.property1 = value, node.property2 = value 
RETURN node 

示例

以下是一個示例 Cypher 查詢,它使用 Neo4j 中的 SET 語句在節點中建立多個屬性。

MATCH (Jadeja:player {name: "Ravindra Jadeja", YOB: 1988})  
SET Jadeja.POB: "NavagamGhed", Jadeja.HS = "90" 
RETURN Jadeja

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

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

Browser App

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

Multiple Properties

結果

執行後,您將獲得以下結果。在這裡您可以觀察到,名為 POB 和 HS 的屬性已被建立。

Executing Properties

為節點設定標籤

您可以使用 SET 語句為現有節點設定標籤。

語法

以下是為現有節點設定標籤的語法。

MATCH (n {properties . . . . . . . }) 
SET n :label 
RETURN n 

示例

在繼續示例之前,請先建立一個名為“Anderson”的節點,如下所示。

CREATE (Anderson {name: "James Anderson", YOB: 1982, POB: "Burnely"})

以下是一個示例 Cypher 查詢,用於使用 SET 語句為節點設定標籤。此查詢將標籤“player”新增到節點 Anderson 並返回它。

MATCH (Anderson {name: "James Anderson", YOB: 1982, POB: "Burnely"}) 
SET Anderson: player 
RETURN Anderson 

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

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

Browser App

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

Label Node

結果

執行後,您將獲得以下結果。在這裡您可以觀察到,名為“player”的標籤已新增到節點中。

Added Player

為節點設定多個標籤

您可以使用 SET 語句為現有節點設定多個標籤。在這裡,您需要使用冒號“:”分隔標籤。

語法

以下是使用 SET 語句為現有節點設定多個標籤的語法。

MATCH (n {properties . . . . . . . }) 
SET n :label1:label2 
RETURN n 

示例

在繼續示例之前,請先建立一個名為“Ishant”的節點,如下所示。

CREATE (Ishant {name: "Ishant Sharma", YOB: 1988, POB: "Delhi"}) 

以下是一個示例 Cypher 查詢,用於使用 SET 語句在節點上建立多個標籤。

MATCH (Ishant {name: "Ishant Sharma", YOB: 1988, POB: "Delhi"}) 
SET Ishant: player:person 
RETURN Ishant 

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

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

Browser App

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

Multi Label

結果

執行後,您將獲得以下結果。在這裡您可以觀察到,兩個標籤 - person 和 player - 已新增到名為Ishant的節點中。

Ishant Player
廣告