Ich habe eine baumartige Knotenstruktur in meiner Neo4j DB. Wenn ich einen bestimmten Knoten lösche, möchte ich alle untergeordneten Knoten und Beziehungen löschen, die zu diesem Knoten gehören. Betrachten Strukturknoten von unten Abfrage generiert,Wie löscht man alle untergeordneten Knoten und Beziehungen mit einer einzigen Abfrage in Neo4j?
merge (p1:Person{nic:'22222v'})-[r1:R1]->(p2:Person{nic:'33333v'})
merge(p1)-[r2:R2]->(p3:Person{nic:'44444v'})
merge(p2)-[r3:R3]->(p3)
merge (p3)-[r4:R4]->(p4:Person{nic:'55555v'})
merge(p4)-[r5:R5]->(p5:Person{nic:'66666v'})
return r1,r2,r3,r4,r5
Wenn ich Eingangsknoten (nic: 44444v) sollte Knoten löschen (nic: 44444v), Knoten (nic: 55555v), Knoten (nic: 66666v ), Beziehung (r2), Beziehung (r3), Beziehung (r4) und Beziehung (R 5)
Es braucht wohl nicht gesagt werden, aber nur für den Fall ... Versuchen Beziehung Etiketten in dieser Art von rekursive Operation zu verwenden. Andernfalls, wenn einer dieser Knoten eine Art von Beziehung hat, die aus dieser Baumstruktur zu einem anderen Knoten in Ihrer Datenbank ausbricht, werden Sie eine rekursive Löschung starten, die möglicherweise einen guten Teil auslöschen könnte sogar alle, deiner db. Selbst wenn es in Ihrem aktuellen Design keine Beziehungen gibt, die diesen Baum verlassen, kann eine zukünftige Datenbankänderung zusätzliche Beziehungen hinzufügen, die die Dinge später für ein Desaster einrichten. – InverseFalcon
@Christophe, Funktioniert Ihre Abfrage in Neo4j 2.3.0-M02? Weil es mir Syntaxfehler gab. – Hasitha
M02 ist ein Meilenstein-Release, nicht sicher und Sie sollten eine stabile Version als 2.3 GA wurde im Oktober 2015 veröffentlicht! Was sind deine Syntaxfehler? –