阅读(4512) (1)

Neo4j CQL - REMOVE删除

2016-12-19 07:40:49 更新

有时基于我们的客户端要求,我们需要向现有节点或关系添加或删除属性。

我们使用Neo4j CQL SET子句向现有节点或关系添加新属性。

我们使用Neo4j CQL REMOVE子句来删除节点或关系的现有属性。


Neo4j CQL REMOVE命令用于

  • 删除节点或关系的标签
  • 删除节点或关系的属性

Neo4j CQL DELETE和REMOVE命令之间的主要区别 - 

  • DELETE操作用于删除节点和关联关系。
  • REMOVE操作用于删除标签和属性。

Neo4j CQL DELETE和REMOVE命令之间的相似性 - 

  • 这两个命令不应单独使用。
  • 两个命令都应该与MATCH命令一起使用。

删除节点/关系的属性

我们可以使用相同的语法从数据库中永久删除节点或关系的属性或属性列表。


REMOVE属性子句语法

REMOVE <property-name-list>
S.No.语法元素描述
1。REMOVE它是一个Neo4j CQL关键字。
2。<property-name-list>它是一个属性列表,用于永久性地从节点或关系中删除它。


<property-name-list> <属性名称列表>语法

<node-name>.<property1-name>,
<node-name>.<property2-name>, 
.... 
<node-name>.<propertyn-name> 


语法说明:

S.No.语法元素描述
1。<node-name>它是节点的名称。
2。<property-name>它是节点的属性名称。


注意 -

  • 我们应该使用逗号(,)运算符来分隔标签名称列表。
  • 我们应该使用dot(。)运算符来分隔节点名称和标签名称。


例如:

此示例演示如何创建节点并从数据库中永久删除此节点的属性。


步骤1 - 打开Neo4j数据浏览器


打开Neo4j数据浏览器

步骤2 -在数据浏览器上键入以下命令

CREATE (book:Book {id:122,title:"Neo4j Tutorial",pages:340,price:250}) 


CREATE (book:Book {id:122,title:"Neo4j Tutorial",pages:340,price:250})


步骤3 -点击“执行”按钮并观察结果。


两个SQL命令
它类似于以下两个SQL命令在一个镜头。

CREATE TABLE BOOK(
	id number,
	title varchar2(20),
	pages number,
	price number
);
INSERT INTO BOOK VALUES (122,'Neo4j Tutorial',340,250);

这里我们可以观察到一个标签和一个节点有4个属性被成功创建。


步骤4 -在数据浏览器上键入以下命令

MATCH (book : Book)
RETURN book

它类似于下面的SQL命令。

SELECT * FROM BOOK;


步骤5 -点击“执行”按钮并观察结果。


4个属性
这里我们可以观察到这个书节点有4个属性。


步骤6 -在数据浏览器上键入以下命令,然后单击执行按钮从书节点中删除“price”属性。

MATCH (book { id:122 })
REMOVE book.price
RETURN book

它类似于下面的SQL命令。

ALTER TABLE BOOK REMOVE COLUMN PRICE;
SELECT * FROM BOOK WHERE ID = 122;


在这里,我们只能看到节点书的3个属性,因为“价格”属性被删除。

有时基于客户端要求,我们需要删除一些现有的属性到节点或关系。

我们需要使用REMOVE子句来删除一个属性或一组属性。


例如

此示例演示如何从数据库中永久删除现有节点的属性。


步骤1打开Neo4j数据浏览器


步骤2 - 在数据浏览器上键入以下命令

MATCH (dc:DebitCard) 
RETURN dc


MATCH (dc:DebitCard)  RETURN dc


步骤3 -点击“执行”按钮并观察结果。


DebitCard节点包含6个属性
这里我们可以观察到DebitCard节点包含6个属性。


步骤4 -在数据浏览器上键入以下命令

MATCH (dc:DebitCard) 
REMOVE dc.cvv
RETURN dc


MATCH (dc:DebitCard)  REMOVE dc.cvv RETURN dc


步骤5 -点击“执行”按钮并观察结果。



如果我们观察输出,“cvv”属性从“DebitCard”节点中删除。


删除节点/关系的标签

我们可以使用相同的语法从数据库中永久删除节点或关系的标签或标签列表。


REMOVE一个Label子句语法:

REMOVE <label-name-list> 

S.No.语法元素描述
1.REMOVE它是一个Neo4j CQL关键字。
2.<label-name-list>它是一个标签列表,用于永久性地从节点或关系中删除它。


<label-name-list>语法

<node-name>:<label2-name>, 
.... 
<node-name>:<labeln-name> 


语法说明:

S.No.语法元素描述
1。<node-name>
<节点名称>
它是一个节点的名称。
2。<label-name>
<标签名称>
这是一个节点的标签名称。

注意 -

  • 我们应该使用逗号(,)运算符来分隔标签名称列表。

  • 我们应该使用colon(:)运算符来分隔节点名和标签名。

例如:

此示例演示如何从数据库永久删除不需要的标签到节点。


步骤1 - 打开Neo4j数据浏览器


步骤2 - 在数据浏览器上键入以下命令

MATCH (m:Movie) RETURN m


MATCH (m:Movie) RETURN m


步骤3 -点击“执行”按钮并观察结果。


执行结果


步骤4 -点击节点以查看其属性窗口。


查看其属性窗口
在这里我们可以观察到四个标签可用于单个节点。


根据我们的客户要求,我们需要删除“图片”属性到此节点。


步骤5 -在浏览器上键入以下命令,然后单击执行按钮。

MATCH (m:Movie) 
REMOVE m:Picture


MATCH (m:Movie)  REMOVE m:Picture

步骤6 -点击“执行”按钮并观察结果。


一个标签从数据库永久删除的节点
在这里我们可以观察到一个标签从数据库永久删除的节点。


步骤7 -在数据浏览器上键入以下命令

MATCH (m:Movie) RETURN m


MATCH (m:Movie) RETURN m


步骤8 -点击“执行”按钮并观察结果。


结果


步骤9 -单击节点以查看其属性窗口。


命令已成功删除
这里我们可以观察到这个节点只有三个标签:Movie,Cinema,Film from Properties Window。 这意味着我们的上一个命令已成功删除图片标签。