我正在尝试删除从给定节点开始到列表末尾的整个列表。
根节点,关系节点和子节点的列表在哪里。子节点可以有一个未确定的节点。
(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
任何想法?
答案 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)