2015-04-04 6 views
5

Ich versuche folgende Abfrage auszuführen:löschen Knoten und es Beziehungen in Neo4j (wenn es welche hat)

MATCH (movie:Movie {title:"test"})-[r]-() DELETE movie, r 

löschen ein: Film Knoten und all seine Beziehungen. Es ist alles gut, außer wenn die Abfrage keine Beziehungen hat, passt es nicht zum Film. Ich habe es mit OPTIONAL MATCH versucht, aber kein Glück.

Ich bin auf der Suche nach einer Möglichkeit, einen Film-Knoten zu löschen, egal ob es Beziehungen hat oder nicht, aber wenn es hat, um sie auch zu löschen.

Antwort

10

Es gibt OPTIONAL MATCH:

MATCH (movie:Movie {title:"test"}) 
OPTIONAL MATCH (movie)-[r]-() 
DELETE movie, r 
+0

Yap, das ist es! Vielen Dank, Sir! –

+0

Wie funktioniert das, wenn Sie mehrere Beziehungen haben (z. B. wenn '(Film) - [r] -()' und '() - [andere] - (Film)'? – JohnAndrews

9

In neuen Neo4j Versionen (seit 2.3 glaube ich) Sie solche Syntax verwenden:

MATCH (movie:Movie {title:"test"}) 
DETACH DELETE movie 
Verwandte Themen