【发布时间】:2015-04-04 08:43:50
【问题描述】:
我正在尝试执行以下查询:
MATCH (movie:Movie {title:"test"})-[r]-() DELETE movie, r
删除 :Movie 节点及其所有关系。一切都很好,除非查询没有任何关系,否则它无法匹配电影。我试过 OPTIONAL MATCH,但没有运气。
我正在寻找一种删除电影节点的方法,无论它是否有任何关系,但如果有,也要删除它们。
【问题讨论】:
我正在尝试执行以下查询:
MATCH (movie:Movie {title:"test"})-[r]-() DELETE movie, r
删除 :Movie 节点及其所有关系。一切都很好,除非查询没有任何关系,否则它无法匹配电影。我试过 OPTIONAL MATCH,但没有运气。
我正在寻找一种删除电影节点的方法,无论它是否有任何关系,但如果有,也要删除它们。
【问题讨论】:
在新的 Neo4j 版本中(我认为是从 2.3 开始),您可以使用这样的语法:
MATCH (movie:Movie {title:"test"})
DETACH DELETE movie
【讨论】:
有OPTIONAL MATCH:
MATCH (movie:Movie {title:"test"})
OPTIONAL MATCH (movie)-[r]-()
DELETE movie, r
【讨论】:
(movie)-[r]-() 和 ()-[other]-(movie) 时,这如何工作?
今天(2021 年 12 月)执行此操作的最佳选择是:
MATCH (movie:Movie {title:"test"}) DETACH DELETE movie
看到这个:https://www.quackit.com/neo4j/tutorial/neo4j_delete_a_relationship_using_cypher.cfm
【讨论】: