Удалить узел и его отношения (если он есть) в Neo4j

Я пытаюсь выполнить следующий запрос:

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

удалить: узел фильма и все его отношения. Это все хорошо, за исключением того, что запрос не имеет каких-либо отношений, он не может сопоставить фильм. Я пытался с ОПЦИОНАЛЬНЫМ МАТЧОМ, но не повезло.

Я ищу способ УДАЛИТЬ узел фильма, независимо от того, есть ли у него отношения или нет, но, если он есть, УДАЛИТЬ их.

Ответ 1

Там OPTIONAL MATCH:

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

Ответ 2

В новых версиях Neo4j (начиная с 2.3, я думаю) вы можете использовать такой синтаксис:

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