你可以像删除节点一样删除关系 - 通过匹配你想要删除的关系。
你可以一次性删除一个或多个关系,甚至可以删除数据库中的所有关系。
首先,作为复习,以下是我们之前创建的关系:
我们来删除类型为 RELEASED
的关系。
有几种方法可以解决这个问题,我们来看其中的三种。
下边的语句范围非常广 - 它将删除所有类型为 RELEASED
的关系。
1 | MATCH ()-[r:RELEASED]-() |
你也可以写的更具体一些,就像这样:
1 | MATCH (:Artist)-[r:RELEASED]-(:Album) |
上边的语句将匹配所有的 Artist
节点和 Album
节点间具有 RELEASED
的关系。
你甚至可以更具体一些,就像这样:
1 | MATCH (:Artist {name: "筷子兄弟"})-[r:RELEASED]-(:Album {name: "猛龙过江"}) |
上边的任意一条语句都可以将 RELEASED
关系删掉,图将看起来是这样的:
删除有关联关系的节点
节点存在关系将不能被删除,如果我们尝试执行下边的语句:
1 | MATCH (a:Artist {name: "筷子兄弟"}) DELETE a |
会看到如下错误:
这是因为节点上有连接的关系。
一种选择是删除所有的关系,然后再删除节点。
另一种选择是使用 DETACH DELETE
子句。DETACH DELETE
子句允许你删除一个节点的同时删除与其相连的所有关系。
所以我们可以将上面的语句改为:
1 | MATCH (a:Artist {name: "筷子兄弟"}) DETACH DELETE a |
执行这条语句将看到下边的成功消息:
删除整个数据库
你可以进一步使用 DETACH DELETE
并删除整个数据库。
只需将过滤条件去掉就可以删除所有的点和关系了。
继续来执行下边的语句:
1 | MATCH (n) DETACH DELETE n |
至此,我们的数据库中不再有任何数据。所以这节课就作为我们 Neoj4 入门教程的最后一课吧🙂
如果你有兴趣了解更多关于 Neo4j 的知识,请查看 https://neo4j.com/docs/developer-manual/current/ 。