У меня есть требования объединить дубликаты узлов и сохранить одну копию.Проблема, с которой я сталкиваюсь, заключается в том, что, когда я объединяю узлы, создаются двойные отношения.Вместо этого я хочу также объединить отношения без дубликатов.
Можете ли вы дать некоторые предложения?
CREATE (n:People { name: 'Person1', lastname: 'Person1LastName', email_ID:'Person1@test2.com' })
CREATE (n:People { name: 'Person2', lastname: 'Person2LastName', email_ID:'Person2@test2.com' })
CREATE (n:People { name: 'Person2', lastname: 'Person2LastName', staysin:'California' })
CREATE (n:People { name: 'Person3', lastname: 'Person3LastName', email_ID:'Person3@test2.com' })
Person2 -[r:Has_Met]->(Person1)
(Person3)-[r:FRIENDS_WITH]->(Person2) having email_ID='Person2@test2.com'
Теперь я хочу сохранить узлы Person2 и сохранить оба отношения с другими узлами -что-то вроде этого:
MATCH (p:People{name:"person1"})
WITH p.name as name, collect(p) as nodes, count() as cnt
WHERE cnt > 1
WITH head(nodes) as first, tail(nodes) as rest
UNWIND rest AS to_delete
MATCH (to_delete)-[r:HAS_MET]->(e:name)
MERGE (first)-[r1:HAS_MET]->(e)
on create SET r1=r
SET to_delete.isDuplicate=true
RETURN count();
Это связанный вопрос , но здесь я знаю, что будет рассматриваться только одно отношение (HAS_MET).Как мне рассмотреть все отношения один раз?