我是Neo4j // Cypher的新手,我正在按照教程进行操作。 使用电影数据库我试图使用以下查询删除所有“ACTED_IN”关系
match (:Person)-[r:ACTED_IN]->(:Movie)
DELETE r;
然而我发现我仍然在节点之间有一些“ACTED_IN”关系,我必须多次重新运行上一个查询才能完全删除这些关系。
为什么它不像我预期的那样工作? 这样做的正确方法是什么?
感谢
答案 0 :(得分:6)
刚试过,它对我有用(使用Neo4j 2.0.1和2.1.0-M01)
match (:Person)-[:ACTED_IN]->(:Movie) return count(*);
-> count(*)
172
match (:Person)-[r:ACTED_IN]->(:Movie) delete r;
-> Deleted 172 relationships, returned 0 rows in 172 ms
match (:Person)-[:ACTED_IN]->(:Movie) return count(*);
-> count(*)
0
答案 1 :(得分:0)
删除所有' follow'与节点名称相关的关系' vishal1@myemail.com' :
MATCH (n { name:'vishal1@myemail.com' })-[r:follows]->() DELETE r
为我工作:)
此外,您还可以指定标签(在我的情况下'用户')以区分具有相同名称的节点
MATCH (n:User { name:'vishal1@myemail.com' })-[r:follows]->() DELETE r
答案 2 :(得分:-2)
Neo4j Relationshiptypes区分大小写。因此ACTED_IN
和acted_in
将充当不同的relationshipTypes