2
为了保持我的数据库从孤立的节点干净,我想删除一个节点 - 由给定的属性值标识 - 和每个相关的节点没有任何其他相关节点。Cypher删除一个节点和所有相关的节点,如果他们没有进一步的关系
这可能吗?目前,我这样做:
MATCH (poi:PointOfInterest)-[r]-(allRelatedNodes)
WHERE poi.id="X007"
DETACH DELETE poi, r, allRelatedNodes;
但是,删除所有相关节点包括将连接到其他节点,如果他们不删除的人。
有没有办法删除节点和所有与其他节点没有关系的节点?
编辑由作者:
的明显的答案是正确的。我终于解决了我的问题
MATCH (poi:Node)-[r*0..1]-(allRelatedNodes)
WHERE poi.name = "A"
AND size((allRelatedNodes)--()) < 2
DETACH DELETE poi, allRelatedNodes;
这几乎是我想要的。 – Matthias
但是,当有其他节点与'allRelatedNodes'有关时,这不会删除'poi'。无论如何,我需要删除“poi”! – Matthias
任何想法@Dave Bennett? – Matthias