匹配/删除Neo4j中的整个子图

时间:2017-02-14 13:20:35

标签: neo4j cypher

鉴于我的数据库中有一个大图,我想删除整个子图,我只知道这个子图的起始节点。是否可以编写一个密码查询来匹配和删除整个子图?

警告:我不知道更多的子图,因为它在哪个节点开始。

1 个答案:

答案 0 :(得分:1)

是的,您可以通过APOC过程path expander从单个节点扩展到所有子图节点,可选择在要遍历的关系或节点上使用过滤器,并使用可选的最大深度。

您需要使用expandConfig()过程,并使用NODE_GLOBAL唯一性。

MATCH (s:Node)
WHERE s.name = 'start'
CALL apoc.path.expandConfig(s, {uniqueness:'NODE_GLOBAL'}) YIELD path
WITH LAST(NODES(path)) as subgraphNode
...

最终会有一个subgraphNodes()程序来包装它以更好地突出显示功能。