Neo4j: удаление узлов и связей, привязанных к конкретному узлу, до конечного узла - PullRequest
0 голосов
/ 01 июня 2018

Я создал большую базу данных, но во время тестирования я обнаружил некоторые неправильные соединения в графовой базе данных Neo4j.Я не могу просто удалить всю базу данных, так как база данных также содержит некоторые другие данные.Вот попытка объяснить сценарий с помощью прикрепленного изображения:

My database looks like this

Узлы Feat имеют такие свойства, как feat_no и type.Узлы Feat прикреплены к другим узлам Feat, узлы Feat присоединяются к узлам DR, затем DR подключается к req_id и т. Д.

Надеюсь, изображение дает четкую картину соединений.

ВопросЯ просто хочу удалить определенный тип узлов Feat, скажем, типа "ABC" и все узлы, присоединенные к узлу Feat с типом "ABC" до req_id.Означает, что все отношения и узлы должны быть удалены, которые отмечены внутри синей метки.Сеть за пределами синей метки не должна быть затронута.

Каждая сеть выделяется в зависимости от типа узлов Feat.

Хочет написать Cypher для того же.

1 Ответ

0 голосов
/ 01 июня 2018

По вашему описанию и образцу изображения, я думаю, вы можете использовать сопоставление с образцом переменной длины , чтобы получить все достижимые узлы из type = "ABC", а затем отсоединить удалить эти узлы:

match (feat:Feat {type : "ABC"})-[*0..]->(node)
detach delete feat
detach delete node
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...