#if-statement #foreach #neo4j
#if-оператор #foreach #neo4j
Вопрос:
Я хотел бы дублировать каждый узел в моем графике, используя цикл foreach. Я пытаюсь использовать оператор if / else для создания определенного типа узла — (:Node), если n: Node имеет метку ‘Node’ и (:Road), если r: Road имеет метку ‘Road. Как исправить этот запрос?
MATCH p=((n:Node)-[:STARTS]-(r:Road)-[:ENDS]-(z:Node))
FOREACH (x in nodes(p) |
WITH CASE head(labels(x))
WHEN 'Node'
THEN
CREATE (:Node {name : x.name, subID : ID(x)})
ELSE
CREATE (:Road {name : x.name, subID : ID(x)}))
Ответ №1:
Вам не нужно выполнять какие-либо FOREACH, вы можете просто создать их :
MATCH p=((n:Node)-[:STARTS]-(r:Road)-[:ENDS]-(z:Node))
CREATE (:Node {name : n.name, subID : ID(n)})
CREATE (:Road {name : r.name, subID : ID(r)})