在Neo4j 2.1.0-M01中轻松删除断开连接的节点

时间:2014-03-01 01:00:42

标签: neo4j cypher

花了一些时间搞清楚如何轻松删除断开连接的节点,但我无法“抓住”它们。

match (n)-[r]-(m) where r is null delete n 

显然不起作用,

也不起作用
match (n) optional match (n)-[r]-(m) where r is null delete r

那么,最好的方法是什么?

3 个答案:

答案 0 :(得分:6)

这个怎么样?

MATCH (n)
WHERE NOT n--()
DELETE n

答案 1 :(得分:1)

另一个想法:

match (n)                     // match all nodes
with n
optional match (n)-[r]-()     // optionally match relationships
with n, count(r) as c
where c=0                     // filter those having no relationships
delete n                      // get rid of 'em

答案 2 :(得分:0)

也许是一种解决方法,但我终于做到了这个

match (n)-[r]-(m)
set n.x=1

为所有相关节点n

创建属性

然后

match (n) where n.x is null delete n

删除松散的节点和

match (n) remove n.x  

清理。不知道这是不是好习惯,不过