Neo4j查询删除所有节点和关系直接或间接连接

时间:2014-06-03 06:51:50

标签: neo4j

我想在删除特定节点时删除所有关系和节点

例如

我有像

这样的结构
A->B->C->D->D1->E1
         ->D2
         ->D3

我想要的是当我删除节点B时,直接或间接连接到该节点B的所有关系和节点都被删除 就像我删除B然后C,D D1,D2,D3,E1应该被删除以及它们的关系。

有办法吗? 我有一个图表,其中状态节点有很多商店节点,每个商店节点有很多项目节点,每个项目节点有很多价格节点。

现在,如果我删除状态节点,则连接到它的所有商店都应该被删除,并且连接到这些商店的所有商品都应该被删除,然后连接到这些商品节点的价格节点应该被删除

1 个答案:

答案 0 :(得分:1)

以下Cypher查询将删除以特定节点为根的整个子图。

我假装您通过测试其xxx属性的值为'yyy'来找到子图的根。

MATCH (root {xxx:'yyy'})-[r1*]->(x)
OPTIONAL MATCH ()-[r2]->(root)
FOREACH(r IN r1 | DELETE r)
DELETE r2, root, x;