鉴于我的数据库中有一个大图,我想删除整个子图,我只知道这个子图的起始节点。是否可以编写一个密码查询来匹配和删除整个子图?
警告:我不知道更多的子图,因为它在哪个节点开始。
答案 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()程序来包装它以更好地突出显示功能。