Neo4j удалить N отношение - PullRequest
       10

Neo4j удалить N отношение

0 голосов
/ 05 сентября 2018

Есть 2 узла

  1. Сообщения
  2. Пользователь

Существует связь между двумя узлами, называемыми общими

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

Пользователь поделился новостями 5 раз, поэтому count(share) равен 5. Теперь мне нужно удалить 1 акцию. т.е. count(share) необходимо изменить на 4.

Как этого достичь?

Ответы [ 2 ]

0 голосов
/ 07 сентября 2018

Я предполагаю, что:

  • ваша БД не буквально содержит ровно 2 узла (только 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;
0 голосов
/ 05 сентября 2018

С чем-то вроде этого:

MATCH (:User{name:'John'}) -[share:shared]-> (:Posts{name:'1'})
WITH share LIMIT 1
DELETE share
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...