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 http://localhost:7474/ 打开 Neo4j 的内置浏览器应用程序,如以下屏幕截图所示。
第 2 步 − 将所需的查询复制并粘贴到 $ 美元提示符中,然后按以下屏幕截图中突出显示的player按钮(以执行查询)。
结果
执行后,您将得到以下结果。 在这里您可以观察到在名为"Dhawan"的节点中创建了一个具有键值对 Highestscore/187 的属性。
删除属性
您可以通过将 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 http://localhost:7474/ 打开 Neo4j 的内置浏览器应用程序,如下面的屏幕截图所示。
第 2 步 − 将所需的查询复制并粘贴到 $ 美元提示符中,然后按以下屏幕截图中突出显示的player按钮(以执行查询)。
结果
执行后,您将得到以下结果。 在这里您可以观察到名为 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 http://localhost:7474/ 打开 Neo4j 的内置浏览器应用程序,如下面的屏幕截图所示。
第 2 步 − 将所需的查询复制并粘贴到 $ 美元提示符中,然后按以下屏幕截图中突出显示的player按钮(以执行查询)。
结果
执行后,您将得到以下结果。 在这里您可以观察到名为 POB 和 HS 的属性已创建。
在节点上设置标签
您可以使用 SET 子句为现有节点设置标签。
语法
以下是为现有节点设置标签的语法。
MATCH (n {properties . . . . . . . }) SET n :label RETURN n
示例
在继续该示例之前,首先创建一个节点"Anderson",如下所示。
CREATE (Anderson {name: "James Anderson", YOB: 1982, POB: "Burnely"})
以下是使用 SET 子句在节点上设置标签的 Cypher 查询示例。 此查询将标签"player"添加到节点 Anderson 并返回它。
MATCH (Anderson {name: "James Anderson", YOB: 1982, POB: "Burnely"}) SET Anderson: player RETURN Anderson
要执行上述查询,请执行以下步骤 −
第 1 步 − 打开 Neo4j 桌面应用程序并启动 Neo4j 服务器。 使用 URL http://localhost:7474/ 打开 Neo4j 的内置浏览器应用程序,如下面的屏幕截图所示。
第 2 步 − 将所需的查询复制并粘贴到 $ 美元提示符中,然后按以下屏幕截图中突出显示的player按钮(以执行查询)。
结果
执行后,您将得到以下结果。 在这里您可以观察到名为"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 http://localhost:7474/ 打开 Neo4j 的内置浏览器应用程序,如下面的屏幕截图所示。
第 2 步 − 将所需的查询复制并粘贴到 $ 美元提示符中,然后按以下屏幕截图中突出显示的player按钮(以执行查询)。
结果
执行后,您将得到以下结果。 在这里您可以观察到两个标签 - 人和玩家 - 被添加到名为 Ishant 的节点中。