Neo4j:删除附加到特定节点的节点和关系,直到叶节点

时间:2018-06-01 11:09:59

标签: neo4j cypher

我已经构建了一个大型数据库,但在测试期间我在Neo4j图形数据库中遇到了一些错误的连接。我不能简单地删除整个数据库,因为数据库也包含其他一些数据。这里试图通过附加图像来解释这个场景:

My database looks like this

Feat节点具有类似feat_no和type的属性。 Feat节点附加到另一个Feat节点,Feat节点附加到DR节点,然后DR连接到req_id,依此类推。

我希望图像能够清晰地显示连接。

问题:我只想删除特定类型的Feat节点,说类型为“ABC”,所有节点都附加到具有类型“ABC”的Feat节点,直到req_id。 表示应删除所有关系和节点,这些关系和节点都标记在蓝色标记内。蓝色标记以外的网络不应受到影响。

根据Feat节点的类型区分每个网络。

想要为此而写Cypher。

1 个答案:

答案 0 :(得分:3)

根据您的描述和示例图片,我认为您可以使用variable-length pattern matchingtype = "ABC"获取所有可到达的节点,然后分离删除这些节点:

match (feat:Feat {type : "ABC"})-[*0..]->(node)
detach delete feat
detach delete node