Kjo është e ngjashme me Shkrija e të dhënave ekzistuese në neo4j, hiq dublikatat , mbaj marrëdhëniet, përveç se nyjet që dua të bashkoj kanë 0-2 marrëdhënie që dua të mbaj.
Merrni grafikun e krijuar nga:
create (:Person {name:"Bob"})-[:RELATED_TO]->(:Person {name:"Jane"})-[:FRIENDS_WITH]->(:Person {name:"Tim"})<-[:FRIENDS_WITH]-(:Person {name:"Jane"}),
(:Person {name:"Sally"})-[:RELATED_TO]->(:Person {name:"Jane"})
Dua të bashkoj nyjet e dyfishta Jane, duke ruajtur marrëdhëniet RELATED_TO dhe FRIENDS_WITH, duke hequr dublikatat.
Nga pyetja tjetër mund të arrij aq larg:
match (p:Person {name:"Jane"})
with p.name as name, collect(p) as ps, count(*) as pcount
where pcount > 1
with head(ps) as first, tail(ps) as rest
unwind rest as to_delete
return to_delete
Por duket se nuk mund t'i bëj të sakta ndeshjet dhe/ose ndeshjet opsionale për bashkim. Provova të lidh me zinxhir ndeshjet opsionale dhe të bëj bashkimin në një deklaratë dhe neo4j më jep një deklaratë.ExecutionFailure pa asnjë mesazh shtesë. Unë u përpoqa të shpërndaj bashkimet në secilën ndeshje dhe përfundova me "nyja tjetër është e pavlefshme". Mendimet?