Просматривая список в Neo4j - PullRequest
0 голосов
/ 18 марта 2019

У меня проблемы со списками в neo4j. Мне нужно пройти через список и сравнить каждый элемент со свойством другого узла. Я пробовал что-то вроде этого

MATCH (C:Courses),(S:Student) 
WHERE
  C.courseid = "8" AND
  S.userid = FOREACH(l IN SPLIT(C.students,",")
    CREATE (C)<-[E:enrolled]-(S) 
RETURN E

, где C.students - строка значений, разделенных ",". FOREACH была единственной функцией, которую я нашел, чтобы сделать это, но я не думаю, что смогу использовать это таким образом. Есть идеи, как мне это сделать?

1 Ответ

1 голос
/ 18 марта 2019

Этот запрос должен делать то, что вы хотели:

MATCH (c:Courses)
WHERE c.courseid = '8'
MATCH (s:Student)
WHERE s.userid IN SPLIT(c.students, ',')
CREATE (c)<-[e:enrolled]-(s)
RETURN e

Если у вас есть значительное количество курсов или студентов, вам также следует создать индексы для :Courses(courseid) и / или:Student(userid).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...