我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

苏南大叔在本文中将要讲述neo4j图数据库的CRUD操作的最后一个部分D,如何删除一个节点或者一个关系。其实这个部分的内容,在之前的文章里面基本都是有提及的。本文还是再说一次,巩固一下基础知识。

苏南大叔:neo4j图数据库,如何删除一个节点或一个关系数据? - neo4j-删除数据
neo4j图数据库,如何删除一个节点或一个关系数据?(图3-1)

大家好,这里是苏南大叔的“程序如此灵动”博客,这里记录苏南大叔和计算机代码的故事。本文描述,如何在neo4j图数据库中,如何删除节点或者是关系的数据呢?本文测试环境:win10neo4j@4.4.5

前置文章

如何选定节点:

如何选定关系:

如何删除节点标签及属性(更新节点)/关系类型及属性(更新关系):

删除节点

删除节点属性:

Match(n:Person{name:'sunan'}) remove n.born return n

删除节点标签:

match(n:Person) remove n:人类

删除节点:

Match(n:Person{name:'sunan'}) delete n

删除节点带关系

注意:有关系存在的节点还删除不掉:报错如下:

Cannot delete node<166>, because it still has relationships. To delete this node, you must first delete its relationships.

苏南大叔:neo4j图数据库,如何删除一个节点或一个关系数据? - 不能直接删除带关系的节点数据
neo4j图数据库,如何删除一个节点或一个关系数据?(图3-2)

删除节点及其关系:

Match(n:Person{name:'sunan'}) detach delete n

苏南大叔:neo4j图数据库,如何删除一个节点或一个关系数据? - 删除节点连带关系
neo4j图数据库,如何删除一个节点或一个关系数据?(图3-3)

删除所有节点(完全不考虑关系):

MATCH (n) OPTIONAL MATCH (n)-[r]-() DELETE n,r

或者

match (n) detach delete n

删除关系

删除关系类型:(删除不掉)
一条关系必须存在类型,单独删除类型定义,是不行的。但是可以替换类型定义:

MATCH (n:Person{name:'sunan'})-[r:Watch]->(m:Movie{title:'The Matrix'})
CREATE (n)-[r2:Learn]->(m)
SET r2 = r
WITH r
DELETE r

删除关系属性:

match (n:Person{name:'sunan'})-[r]->(m:Movie{title:'The Matrix'})
remove r.aa
return r,type(r)

删除关系:

MATCH (n:Person{name:'sunan'})-[r:Watch]->(m:Movie{title:'The Matrix'})
DELETE r

参考文献

综述

neo4j图数据库的增删改查系列文章,暂时结束。当然,后续还有其它更高级的应用文章。敬请关注苏南大叔的neo4jcypher系列文章:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   neo4j    cypher