如何在Neo4j图数据库中删除所有关系?

22
我需要删除所有节点之间的关系。有没有办法在neo4j图形数据库中删除所有关系?请注意,我正在使用ruby绑定——neography gem。 宝石库的wiki上没有关于此的信息。我也尝试在neo4j文档中找到方法,但没有任何结果。 Neo4j版本为1.7.2。
2个回答

26

在Cypher中:

删除所有关系:

start r=relationship(*) delete r;

我认为需要创建所有节点之间的关系:

start n=node(*),m=node(*) create unique n-[r:RELTYPE]-m;

但是你不希望有太多的顶点,因为它会在低内存下崩溃(至少在我的情况下,我有100万个顶点和1GB内存)。


我已经尝试按照您的建议进行操作,但在尝试删除所有关系时出现以下消息:“Neography :: NeographyError:预期返回子句。” - roman
你可能正在使用一些扩展编程模块,这可能会导致问题。你尝试在管理员界面中通过纯Cypher控制台进行操作了吗?请粘贴你的Ruby代码中有问题的部分。 - ulkas
如何通过Java核心API实现这个? - prasanth
1
@prasanth 我不知道,建议您创建一个全新的问题。 - ulkas

15
在 Cypher 3.5 中,start 已经被 deprecated
你可以使用以下 Cypher 删除所有关系。
match ()-[r]->() delete r;

1
我在neo4j沙盒上创建了电影图。我想删除所有内容。但是要删除节点,必须先删除关系。这个过程非常完美。 - Timothy Lombard
在我的使用情况下,这个查询非常慢,我猜它首先尝试检索所有关系,然后再删除它们。如果是这样的话,我想更好的方法是在不先查找/检索关系的情况下进行删除。 - Dr. Strangelove

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接