Я хотел бы получить узел, удалить все исходящие отношения определенного типа, а затем добавить обратные отношения.
Проблема, с которой я столкнулся, состоит в том, что, как только я получаю узел, он все еще сохраняет свои прежние отношения, даже еслипосле удаления, вместо того, чтобы иметь 1, он удваивает все, что имеет.1-> 2-> 4-> 8 и т. Д.
Пример графика:
CREATE (a:Basic {name:'a'})
CREATE (b:Basic {name:'b'})
CREATE (c:Basic {name:'c'})
CREATE (a)-[:TO]->(b)
CREATE (a)-[:SO]->(c)
Запрос на удаление предыдущих отношений, а затем добавление новых отношений.(это всего лишь краткий пример, где на самом деле он не добавит обратно те же отношения, но, скорее всего, укажет его на другой узел).
MATCH (a:Basic {name:'a'})
WITH a
OPTIONAL MATCH (a)-[r:TO|SO]->()
DELETE r
WITH a
MATCH (b:Basic {name:'b'})
CREATE (a)-[:TO]->(b)
WITH a
MATCH (c:Basic {name:'c'})
CREATE (a)-[:SO]->(c)
Если я изменю CREATE на MERGE, то это решает проблему, но мне кажется странным слияние, когда я знаю, что только что удалил все отношения.Есть ли способ обновить «а» посередине запроса, чтобы он отражал изменения?Я хотел бы сохранить это в одном запросе