1

因此,如果我有一个类别树,如何在单个命令中删除该树的整个分支?我尝试了以下

START n=node(13163) MATCH (n)-[r:SUB_CATEGORY*]->(m) WHERE m.type = "category" DELETE r,m;

只收到以下..“表达式r产生Stream(Relationship[13842], ?)。不知道如何删除。”

4

1 回答 1

3

“匹配”中的路径具有可变长度关系,因此对于某些节点 m,r 是关系的集合而不是单个关系。这就是发生错误的原因。

您只需要将每个关系作为一行返回,然后删除它们。

START n=node(13163) 
MATCH path = (n)-[:SUB_CATEGORY*]->(m) 
WHERE m.type = "category" 
With m, last(relationships(path)) as r
DELETE r,m

在可能存在附加到“m”的 [:SUB_CATEGORY] 关系之外的其他关系的情况下,安全的方法是使用“with m match m-[r?]-() delete m,r”,如下所示通过@韦斯弗里曼

于 2013-09-18T17:39:45.907 回答