Neo4j删除N关系

时间:2018-09-05 12:22:49

标签: neo4j

有2个节点

  1. 帖子
  2. 用户

两个节点之间有一个共享的关系

(:User{name:'John'}) -[share:shared]-> (:Posts{name:'1'})

该用户共享了5次新闻,因此count(share)为5。现在,我需要删除1个共享。即count(share)需要更改为4。

如何实现?

2 个答案:

答案 0 :(得分:1)

我认为:

  • 您的数据库在字面上不完全包含两个节点(仅1个User节点和1个Posts节点),并且
  • 每个Posts节点只有一个传入的shared关系

如果您不关心哪个帖子不共享(并且不想删除该帖子的节点),可以通过以下方法删除“约翰”的一个shared关系:

MATCH (:User {name:'John'})-[share:shared]->(:Posts)
WITH share LIMIT 1
DELETE share;

另一方面,如果您要专门删除“约翰”与帖子之间的shared关系,且name为“ 4”(假设您不想删除该帖子的节点):

MATCH (:User {name:'John'})-[share:shared]->(:Posts {name: '4'})
DELETE share;

答案 1 :(得分:0)

像这样的东西:

MATCH (:User{name:'John'}) -[share:shared]-> (:Posts{name:'1'})
WITH share LIMIT 1
DELETE share