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

Posted

技术标签:

【中文标题】删除 neo4j 1.8 中的所有节点和关系【英文标题】:Delete all nodes and relationships in neo4j 1.8 【发布时间】:2012-12-24 12:37:02 【问题描述】:

我知道这个问题已经被很多人问过了 对于我的研究,这是之前提出的一些问题

    How to delete all relationships in neo4j graph? https://groups.google.com/forum/#!topic/neo4j/lgIaESPgUgE

但终究还是解决不了我们的问题, 我们只想删除“ALL”节点和“ALL”关系

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

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

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

【问题讨论】:

【参考方案1】:

您可能做对了,只有仪表板只显示较高的 ID,因此“活动”节点的数量,关系,虽然没有。它只是提供信息。

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

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

如果两者都给你0,你的删除是成功的。

【讨论】:

是的,这是真的,但仪表板既没有显示更高的 ID,也没有显示最高的 ID 是的,他们就是这样编程的——因为当你有一个拥有数十亿节点的集群时,你不想手动计算它们。但在某处我看到有人对此进行了更深入的研究并进行了某种 javascript 修复,也许如果你幸运的话,你会在谷歌上搜索帖子。【参考方案2】:

从 2.3.0 到 3.3.0

MATCH (n)
DETACH DELETE n

Docs

2.3.0 之前的版本

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

Docs

【讨论】:

Neo4j 文档中的这个示例虽然说:“这个查询不是用于删除大量数据,但在处理小型示例数据集时很好用。”。想知道最好先做 MATCH ()-[r]-() DELETE r 然后再做 MATCH (n) DELETE n @GeorgeBirbilis,为了对大量数据执行此操作,必须将操作分解为多个事务,并且必须实施重试机制。 不确定是否需要重试,但对于迭代方式,请参阅 Stefan Armbruster 在***.com/questions/29711757/… 的回复(我还在我的博客文章链接末尾提到它,我在单独的答案) 2.3 answer-query 对我不起作用。 @GeorgeBirbilis 的建议可以。 @aliteralmind 从neo4j.com/docs/2.3.0/query-delete.html 判断,问题可能在于)之后需要换行符或至少一个空格字符,因为目前它写...)DETACH看起来像一个错字(而且也许将 DETACH DELETE 保持在同一行,但不确定是否需要这样做)。请注意,文章仍然说“此查询不适用于删除大量数据,但在处理小型示例数据集时非常有用。”【参考方案3】:

它会做的伎俩..

Match (n)-[r]-()
Delete n,r;

【讨论】:

@TomRedfern 更短! XD 这不会删除没有关系的节点,不像接受的答案【参考方案4】:

对于大型数据库,您应该从磁盘中删除数据库(我猜是在您首先停止引擎之后)或在 Cypher 中使用类似的东西:

MATCH (n)
OPTIONAL MATCH (n)-[r]-()
WITH n,r LIMIT 50000
DELETE n,r
RETURN count(n) as deletedNodesCount

请参阅https://zoomicon.wordpress.com/2015/04/18/howto-delete-all-nodes-and-relationships-from-neo4j-graph-database/ 了解我从各种答案中收集到的更多信息

【讨论】:

【参考方案5】:

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

但是,使用简单的 chyper 删除“ALL”节点和“ALL”关系是一种简单的方法。 这是代码:

匹配 (n) 分离删除 n

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

【讨论】:

【参考方案6】:

如果节点的名称是例如:abcd 那么下面的查询将起作用:

MATCH (n:abcd)
DETACH DELETE n

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

【讨论】:

【参考方案7】:

您可能想要删除约束和索引

【讨论】:

以上是关于删除 neo4j 1.8 中的所有节点和关系的主要内容,如果未能解决你的问题,请参考以下文章

neo4j cypher 节点可以模糊匹配么

neo4j-高效的原因(节点关系属性存储)

Neo4j 密码查询以获取与特定其他节点没有关系的所有节点

知识图谱Neo4j Cypher查询语言详解

如何从neo4j中的csv文件中导入相同标签的节点之间的关系?

neo4j寻找节点间的最短路径