У меня есть график с организациями и сотрудниками с двумя типами отношений:
(:Employee)-[:Worked]->(:Organization)
(:Employee)-[:Managed]->(:Organization)
Организация имеет уникальное свойство Id
с индексом.У сотрудника есть свойство Name
без индекса.Мне нужно добавить нового сотрудника в организацию, если он не существует, или добавить новые отношения, только если он существует.Но я не знаю, как добиться этого без индекса на Name
.
1. Найти организацию по Id.Хорошо, это быстро.
match (o:Organization {Id:1})
2. Найдите сотрудника, который уже связан с организацией, или добавьте новую ссылку и сотрудника, если он не существует.Я не могу использовать простой
merge (e:Employee {Name: "name"})
merge (e)-[:Worked]->(o)
, потому что у меня нет индекса на Name
(это будет медленно), и мне нужно найти только сотрудника, который подключен к выбранной организации
merge (e:Employee { Name: "name" })-[:Worked]->(o)
не работает - будет добавлен новый сотрудник, если уже существует сотрудник с таким именем, но с другими отношениями, например [:Managed]
.