如何用Cypher在Neo4j中删除特定节点的多个指定关系
删除Neo4j节点的多个指定关系
修正你的Cypher代码
你写的代码存在一处语法错误({id:2后缺少闭合大括号),修正后即可正常执行,实现删除指定关系的需求:
MATCH (n:Student{id:2}), (n)-[r1:STUDENT_CLASS]->(b:Class), (n)-[r2:STUDENT_RANK]->(m:Rank) DELETE r1,r2 RETURN n.name
更简洁的替代写法
如果不需要关联目标节点(Class、Rank)的属性信息,还可以用更简洁的方式匹配并删除指定关系:
方式1:直接枚举关系类型
MATCH (n:Student{id:2})-[r:STUDENT_CLASS|STUDENT_RANK]->() DELETE r RETURN n.name
方式2:用IN指定关系类型列表
MATCH (n:Student{id:2})-[r]->() WHERE type(r) IN ['STUDENT_CLASS', 'STUDENT_RANK'] DELETE r RETURN n.name
以上几种写法都能精准删除目标节点的STUDENT_CLASS和STUDENT_RANK关系,不会影响该节点与School节点的关联。
内容的提问来源于stack exchange,提问作者Mathi
相关产品推荐
相关产品推荐

