如何从起始节点递归删除节点

时间:2014-08-03 02:18:26

标签: neo4j cypher neo4jclient

我有一个图表,其中包含一组节点及其子节点。有一个根节点,其余节点分支出来。这样的节点集合很少。

我想选择一个根节点并递归清除所有连接和节点,留下根节点以备将来添加。

       start n=node:DataSpace(DataSpaceName="DS1") match (ds)-[r]-(e) delete e,r

上面的查询肯定是错误的,因为它不考虑递归以及在删除关系之前必须删除实体的条件。

关于如何实现同样的建议。

另外,由于我将使用neo4JClient,如果我们也有一个neo4jClient翻译,那将会很棒。

2 个答案:

答案 0 :(得分:2)

您想要做类似

的事情
MATCH (n:MyLabel)-[r*]-(e)
FOREACH (rel IN r| DELETE rel)
DELETE e

有关示例,请参阅http://console.neo4j.org/r/8go5i6

答案 1 :(得分:0)

“在关系之前必须删除实体的条件”

AFAIK删除具有关系的节点将触发错误。

为什么不为关系添加深度以包含递归?:

MATCH (n:MyLabel)-[r*]-(e) DELETE r,e