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