2015-04-04 10 views
5

sto cercando di eseguire query seguente:nodo Elimina ed è relazioni (se ne ha) in Neo4j

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

Per eliminare un: nodo di film e tutti i suoi rapporti. Va tutto bene, eccetto se la query non ha relazioni, non riesce ad INCONTRARE il film. Ho provato con OPTIONAL MATCH, ma senza fortuna.

Sto cercando un modo per ELIMINARE un nodo di film, non importa se ha o non ha relazioni, ma se lo è, per CANCELLARLO.

risposta

10

C'è OPTIONAL MATCH:

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

Yap, il gioco è fatto! Grazie mille, signore! –

+0

Come funziona quando si hanno più relazioni (ad esempio quando '(filmato) - [r] -()' e '() - [altro] - (filmato)'? – JohnAndrews

9

Nelle nuove versioni Neo4j (dal 2,3 credo) è possibile utilizzare tale sintassi:

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