Neo4J删除所有深度相关节点

Neo4J删除所有深度相关节点,neo4j,Neo4j,如何删除具有某些属性(例如“Trojańska”)的主节点的所有深度相关节点 示例我想删除与“特洛伊斯卡”相关的所有节点,结果我想得到如下结果: Delete: Trojanska Delete: Trojanska -> Slawek Delete: Trojanska -> Slawek -> telefon Delete: Trojanska -> Slawek -> komputer Delete: Trojanska -> Slawek ->

如何删除具有某些属性(例如“Trojańska”)的主节点的所有深度相关节点

示例我想删除与“特洛伊斯卡”相关的所有节点,结果我想得到如下结果:

Delete: Trojanska
Delete: Trojanska -> Slawek
Delete: Trojanska -> Slawek -> telefon
Delete: Trojanska -> Slawek -> komputer
Delete: Trojanska -> Slawek -> komputer -> modem
Delete: Trojanska -> Slawek -> komputer -> modem -> wifi
Delete: Trojanska -> Slawek -> laptop
Delete: Trojanska -> Wojtek
Delete: Trojanska -> Remek -> telefon
Delete: Trojanska -> Remek -> komputer
Delete: Trojanska -> Remek -> laptop
Delete: Trojanska -> Remek -> laptop -> usb

首先,Neo中没有级联删除的概念(或者至少我认为没有),所以您必须手动执行。使用昨天设置的相同工具,我运行了查询:

MATCH (h:Home { value:"Trojanska" })<-[rs:HAS*]-(x)
FOREACH (r IN rs | 
     DELETE r)
DELETE x
基本上,所有这些额外做的是使用函数将字符串值拉入数组,然后在字符串未绑定到其源节点(已删除)时返回该数组

MATCH (h:Home { value:"Trojanska" })<-[rs:HAS*]-(x)
FOREACH (r IN rs | 
     DELETE r)
DELETE x
MATCH p=(h:Home { value:"Trojanska" })<-[rs:HAS*]-(x)
WITH p, x, EXTRACT(x IN NODES(p)| x.value) AS nodes
FOREACH (n IN rels(p)| 
     DELETE n)
DELETE x
RETURN nodes