Я новичок в Neo4j, и я застрял на одной простой проблеме целый день. Это должно быть очень просто исправить, но я просто не могу понять это правильно!
Я пытаюсь смоделировать иерархическую структуру компании (от генерального директора до стажера). У меня есть файл cvs с номерами Employee_ID и названиями их должностей. В этом же файле у меня есть еще один столбец с идентификационными номерами менеджеров сотрудников. Таким образом, в каждой строке у меня есть 3 ячейки: идентификатор сотрудника, должность, идентификатор руководителя сотрудника, и у меня есть 30 строк (на данный момент).
(Например: рядом с идентификатором сотрудника Джона есть идентификатор сотрудника Сэма, потому что Сэм является менеджером Джона. Сэм также отображается в столбце Сотрудника, а рядом с его идентификатором находится идентификатор Марка, поскольку Марк является менеджером Сэма ... и итак)
Кажется, что это очень похоже на классический пример Actor- [ACTED_IN] -> Movie, но в этом случае у меня нет 30 актерских узлов и 30 киноэлементов, и я не уверен, как построить 30 отношений между теми же 30 узлов.
Каждый раз, когда я пытаюсь создать отношение WORKS_UNDER, я заканчиваю тем, что создаю новые узлы, и я не могу заставить Neo4j понять, что узлы на правой стороне отношения уже находятся в графе.
Я уверен, что это простая проблема, но, как я уже сказал, я новичок в Neo4j, и я действительно могу воспользоваться помощью!
ОБНОВЛЕНИЕ: мне удалось заставить его работать, добавив идентификаторы менеджеров как свойство в узлах Сотрудников.
ЗАГРУЗИТЬ CSV С ЗАГОЛОВКАМИ ИЗ "file: ///Personnel.csv" AS row FIELDTERMINATOR ';'
MERGE (person: Person {employee_ID: row.ID, job_title: row.Jobtitle, manager_ID: row.ManagerID})
С *
МАТЧ (p1: Person)
МАТЧ (p2: Person)
ГДЕ p2.employee_ID = p1.manager_ID
MERGE (p1) - [r: WORKS_UNDER] - (p2)
Я уверен, что должен быть способ сделать это, который не требует, чтобы я добавил идентификаторы менеджеров как свойство, но я не могу понять это: (