您在链接的SO问题中使用db全局查询会出现什么错误?尝试替换| for:在FOREACH中,这是我能看到的唯一突破性语法差异. 2.x方式说同样的事情,除了适应你在db中只有一种关系类型,可能是
MATCH (a)-[r]->(b)
WITH a, b, TAIL (COLLECT (r)) as rr
FOREACH (r IN rr | DELETE r)
我认为WITH管道会在没有重复的情况下携带空尾,我不知道循环通过一个空集合是多么昂贵 – 我的意思是引入限制的地方是在WITH之后使用过滤器, 就像是
MATCH (a)-[r]->(b)
WITH a, b, TAIL (COLLECT (r)) as rr
WHERE length(rr) > 0 LIMIT 100000
FOREACH (r IN rr | DELETE r)
由于这个查询根本没有触及属性(与你的相反,它返回(a)和(b)的属性)我不认为对于像你这样的中等图形来说它应该是非常重的内存,但你会有试验极限.
如果内存仍然存在问题,那么如果有任何方法可以限制节点使用(不涉及属性),那也是个好主意.如果您的节点可通过标签区分,请尝试同时运行一个标签的查询
MATCH (a:A)-[r]->(b) //etc..
MATCH (a:B)-[r]->(b) //etc..