因此,如果我有一个类别树,如何在一个命令中删除该树的整个分支?我尝试了以下
START n = node(13163)MATCH(n) - [r:SUB_CATEGORY *] - >(m)WHERE m.type =“category”DELETE r,m;
仅接收以下内容..“表达式r
产生了Stream(Relationship[13842], ?)
。不知道如何删除它。”
答案 0 :(得分: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]关系之外的其他关系的情况下,安全的方法是使用“与m匹配m- [r?] - ()删除m,r”正如@Wes Freeman所述