如何删除没有任何关系的所有节点 - neo4j/cypher

4
我正在生成neo4j数据库中的节点,并希望删除那些没有关系的节点。哪个cypher指令是最好的用来完成这个任务?
1个回答

23

尝试

MATCH (n)
WHERE size((n)--())=0
DELETE (n)

11
这个查询是正确的,但在关系图很大且关系很多的情况下可能会很慢,因为它需要遍历所有关系才能计算大小。以下查询应该更有效率:match (n) where not (n)--() delete (n) - remigio
大小难道不使用 node.getDegree() 吗? - Luanne
文档中没有关于此的证据。 - remigio
这是最有效的方法,分析显示它正在使用getDegree。 - Christophe Willemsen
@remigio,我的错,我还没有使用getDegree,需要在2.3中进行测试。 - Christophe Willemsen
@remigio 是的,对于更新查询,它使用规则计划器。重新进行了配置文件,执行时间仍然比不(pattern)大的大小要短,但应该针对大图进行测试。 - Luanne

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接