因此,如果我有一个类别树,如何在单个命令中删除该树的整个分支?我尝试了以下
START n=node(13163) MATCH (n)-[r:SUB_CATEGORY*]->(m) WHERE m.type = "category" DELETE r,m;
只收到以下..“表达式r
产生Stream(Relationship[13842], ?)
。不知道如何删除。”
因此,如果我有一个类别树,如何在单个命令中删除该树的整个分支?我尝试了以下
START n=node(13163) MATCH (n)-[r:SUB_CATEGORY*]->(m) WHERE m.type = "category" DELETE r,m;
只收到以下..“表达式r
产生Stream(Relationship[13842], ?)
。不知道如何删除。”
“匹配”中的路径具有可变长度关系,因此对于某些节点 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”,如下所示通过@韦斯弗里曼