【问题标题】:Delete node and its relationships (if it has any) in Neo4j在 Neo4j 中删除节点及其关系(如果有)
【发布时间】:2015-04-04 08:43:50
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: neo4j cypher


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      有OPTIONAL MATCH:

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

      【讨论】:

      • 是的,就是这样!非常感谢您,先生!
      • 当您有多个关系时(例如 (movie)-[r]-() 和 ()-[other]-(movie) 时,这如何工作?
      • 你应该使用 DETACH DELETE 来避免关系问题
      【解决方案3】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-24
        • 2014-05-24
        • 1970-01-01
        • 2021-09-18
        • 2015-09-14
        相关资源
        最近更新 更多