У меня есть данные в Neo4j, выглядящие так: (СТАТЬЯ) и (ТЕМА) узлы.
В каждом узле ARTICLE у меня есть свойство, содержащее список таких строк, свойство — темы:
"topics": ["солнце", "небо"]
У меня много узлов тем, и я хотел бы создавать связь между узлами ARTICLE и узлами TOPICS каждый раз, когда строка соответствует имени узла TOPIC.
Например, если у меня есть узел TOPIC со свойством Topic и значением sun, я хотел бы создать связь между article, содержащей строку sun (в свойстве списка тем узлов ARTICLE) и узлами TOPIC.
Как я могу это сделать ? Я подумал о том, чтобы зациклиться на каждом списке узлов и посмотреть, есть ли он в узлах темы.
Вы можете получить все темы статей, а затем для каждой темы найти соответствующий узел темы. Создайте связь CONNECTED_TO (или создайте собственное имя).
MATCH (a:ARTICLE)
UNWIND a.topics as articleTopic
MATCH (t:TOPICS {topic: articleTopic})
MERGE p=(a)-[:CONNECTED_TO]->(t)
RETURN p
Пример результата:
Спасибо :) @âńōŋŷXmoůŜ