删除neo4j 1.8中的所有节点和关系


92

我知道这个问题已经
为我的研究问了很多人,这是以前问过的一些问题

  1. 如何删除neo4j图中的所有关系?
  2. https://groups.google.com/forum/#!topic/neo4j/lgIaESPgUgE

但是毕竟,仍然不能解决我们的问题,
我们只想删除“所有”节点和“所有”关系

在此处输入图片说明

假设删除“ ALL”可以看到剩余的0个节点0个属性和0个关系

这是我执行论坛建议的删除“ ALL”后拍摄的屏幕截图

我的问题还是一样,如何删除neo4j中的所有节点和所有关系

Answers:


246

从2.3.0到3.3.0

MATCH (n)
DETACH DELETE n

文件

2.3.0之前的版本

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

文件


2
Neo4j docs中的此示例虽然说:“此查询不是用于删除大量数据,但在处理小型示例数据集时很好。” 想知道是否最好进行MATCH()-[r]-()DELETE r然后再进行MATCH(n)DELETE n
George Birbilis

2
@GeorgeBirbilis,为了对大量数据执行此操作,必须在多个事务中分解操作,并且必须实现重试机制。
Bob B

1
不确定是否需要重试,但是要以迭代方式进行,请参阅Stefan Armbruster在stackoverflow.com/questions/29711757/上的答复……(我在博客文章链接的末尾也提到了该问题,我在单独的答案中有提到)
乔治·比比里斯

2.3答案查询对我不起作用。@GeorgeBirbilis建议。
aliteralmind 2015年

从neo4j.com/docs/2.3.0/query-delete.html判断@aliteralmind可能的问题是)之后需要换行符或至少一个空格字符,因为当前它写的是...)DETACH,看起来像一个错字(也可以使DETACH DELETE保持在同一行,但不确定是否需要)。请注意,文章仍然说:“此查询不是用于删除大量数据,但是在处理小型示例数据集时很好。”
George Birbilis 2015年

6

您可能做得正确,只有仪表板仅显示采用的较高ID,因此“活动”节点的数量和关系(尽管没有)。它只是提供信息。

为确保您有一个空图,请运行以下命令:

START n=node(*) return count(n);
START r=rel(*) return count(r);

如果两者都给您0,则删除成功。


是的,这是真的,但仪表板既没有显示出更高的ID,也没有显示出最高的ID
Huei Tan

是的,这就是他们编程的方式-因为当您拥有一个带有数十亿个节点的集群时,您不想手动对其进行计数。但在某个地方,我看到有人对此做得更深入,并进行了某种JavaScript修复,也许如果您幸运的话,您会在Google上发帖。
ulkas 2013年


2

Neo4j无法删除具有关系的节点。您必须先删除关系,然后才能删除节点。

但是,这是一种简单的方法,可通过一个简单的项删除“ ALL”节点和“ ALL”关系。这是代码:

匹配(n)分离删除n

-> DETACH DELETE将通过Match删除所有节点和关系


0

如果节点名称例如:abcd,则下面的查询将起作用:

MATCH (n:abcd)
DETACH DELETE n

这只会删除标签为“ abcd”的节点及其所有关联关系。



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.