cypher删除节点和所有相关节点列表

时间:2015-02-20 20:37:19

标签: cypher

我正在尝试删除从给定节点开始到列表末尾的整个列表。

根节点,关系节点和子节点的列表在哪里。子节点可以有一个未确定的节点。

(r:Root {name:'masterDoc'})<-[p:previous]<-(s1:schema)<-[p1:previous]<-(s2:schema)<-[pn:previous]<-(sn:Schema)

当我运行下面的密码查询时,我遇到类型不匹配:预期的节点,路径或关系但是收集

MATCH (n:`Root` {name:'masterDoc'})-[r:previous*]-(s) delete s,r,n

任何想法?

1 个答案:

答案 0 :(得分:3)

您想要拉出最长的节点路径,迭代关系并删除每个节点,然后迭代节点并删除它们。

注意:这假设路径中的每个节点不再锚定到路径中的节点以外的任何节点,否则将无法将其删除。

// match the path that you want to delete
match p=(:Root {name: 'masterDoc'} )-[:previous*]->() 
with p
// order it in descending order by length
order by length(p) desc
// grab the longest one
limit 1
// delete all of the relationships
foreach (r in relationships(p) | delete r)
// delete all of the remaining nodes
foreach (n in nodes(p) | delete n)