在 Neo4j 中删除节点及其关系(如果有的话)

Delete node and its relationships (if it has any) in Neo4j

我正在尝试执行以下查询:

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

删除 :Movie 节点及其所有关系。一切都很好,除非查询没有任何关系,否则无法匹配电影。我尝试过使用 OPTIONAL MATCH,但没有成功。

我正在寻找一种方法来删除电影节点,无论它是否有任何关系,但如果有,也将它们删除。

OPTIONAL MATCH:

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

在新的 Neo4j 版本中(我认为从 2.3 开始)你可以使用这样的语法:

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

今天(2​​021 年 12 月)执行此操作的最佳选择是:

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

看到这个:https://www.quackit.com/neo4j/tutorial/neo4j_delete_a_relationship_using_cypher.cfm