Neo4j 简明教程

Neo4j - Set Clause

使用 Set 子句,可以向现有节点或关系添加新属性,也可以添加或更新现有属性值。

在本节中,我们将探讨如何 −

  1. Set a property

  2. Remove a property

  3. Set multiple properties

  4. 设置节点上的标签

  5. 在节点上设置多个标签

Setting a Property

使用 SET 子句,可以在节点中创建新属性。

Syntax

以下是设置属性的语法。

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

Example

在继续案例之前,请首先像下面所示的那样创建一个名为 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

执行上述查询,执行以下步骤:

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

browser app

Step 2 - 在美元提示符中复制并粘贴所需的查询,并按播放按钮(执行查询)突出显示在下面的屏幕截图中。

match player

Result

执行后,您将获得以下结果。您可以在此处观察到,在名为“Dhawan”的节点中创建了一个键值对 highestscore/187 的属性。

key value

Removing a Property

您可以通过将 NULL 作为其值传递来删除现有属性。

Syntax

以下是使用 SET 子句从节点中删除属性的语法。

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

Example

在继续案例之前,请首先像下面所示的那样创建一个“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

执行上述查询,执行以下步骤:

Step 1 - 打开 Neo4j Desktop App 并启动 Neo4j Server。使用 URL http://localhost:7474/ 打开 Neo4j 的内置浏览器应用,如下面的屏幕截图所示。

browser app

Step 2 - 在美元提示符中复制并粘贴所需的查询,并按播放按钮(执行查询)突出显示在下面的屏幕截图中。

remove property

Result

执行后,您将获得以下结果。您可以在此处观察到,名为 POB 的变量已删除。

deleted pob

Setting Multiple Properties

同样,您可以使用 Set 子句在节点中创建多个属性。为此,您需要用逗号指定这些键值对。

Syntax

以下是使用 SET 子句在节点中创建多个属性的语法。

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

Example

下面是一个示例 Cypher 查询,它在 Neo4j 中使用 SET 子句在节点中创建多个属性。

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

执行上述查询,执行以下步骤:

Step 1 - 打开 Neo4j Desktop App 并启动 Neo4j Server。使用 URL http://localhost:7474/ 打开 Neo4j 的内置浏览器应用,如下面的屏幕截图所示。

browser app

Step 2 - 在美元提示符中复制并粘贴所需的查询,并按播放按钮(执行查询)突出显示在下面的屏幕截图中。

multiple properties

Result

执行后,您将获得以下结果。您可以在此处观察到,创建了名为 POB 和 HS 的属性。

executing properties

Setting a Label on a Node

您可以使用 SET 子句将标签设置为现有节点。

Syntax

以下是将标签设置为现有节点的语法。

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

Example

在继续案例之前,请首先像下面所示的那样创建一个“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

执行上述查询,执行以下步骤:

Step 1 - 打开 Neo4j Desktop App 并启动 Neo4j Server。使用 URL http://localhost:7474/ 打开 Neo4j 的内置浏览器应用,如下面的屏幕截图所示。

browser app

Step 2 - 在美元提示符中复制并粘贴所需的查询,并按播放按钮(执行查询)突出显示在下面的屏幕截图中。

label node

Result

执行后,您将获得以下结果。您可以在此处观察到,名为“player”的标签已添加到节点。

added player

Setting Multiple Labels on a Node

您可以使用 SET 子句将多个标签设置为现有节点。您需要用冒号“:”将其分隔来指定标签。

Syntax

以下是使用 SET 子句设置现有节点的多个标签的语法。

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

Example

在继续执行示例之前,首先创建一个名为“Ishant”的节点,如下所示。

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

以下是用于使用 SET 子句对某个节点创建多个标签的 Cypher 查询示例。

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

执行上述查询,执行以下步骤:

Step 1 - 打开 Neo4j Desktop App 并启动 Neo4j Server。使用 URL http://localhost:7474/ 打开 Neo4j 的内置浏览器应用,如下面的屏幕截图所示。

browser app

Step 2 - 在美元提示符中复制并粘贴所需的查询,并按播放按钮(执行查询)突出显示在下面的屏幕截图中。

multi label

Result

执行后,您将得到以下结果。在此,您可以看到两个标签(person 和 player)添加到名为 Ishant 的节点中。

ishant player