Я пытаюсь использовать FOREACH для условного оператора.Я передаю параметр $ hasLegs и, если значение равно 'Y' , я выполняю MERGE .Однако, похоже, что этого не требуется, поскольку вся операция обойдена и не выполняется.
Я пробовал метод FOREACH , используя APOC и используя С но пока не повезло.Может быть, это не моя неделя.
Пример Foreach:
MERGE (species:Species {name: $name})
ON CREATE SET species.GUID = apoc.create.uuid(), species.creationDate = datetime()
WITH species
with species, $hasLegs as hasLegs
FOREACH (ignore IN CASE WHEN $hasLegs = 'Y' THEN [1] ELSE [] END | MERGE (species)-[:LINKS_TO]->(:Question:Root{type: 'Legs'}) )
RETURN species
Пример APOC
MERGE (species:Species {name: $name})
ON CREATE SET species.GUID = apoc.create.uuid(), species.creationDate = datetime()
WITH species
MATCH (l:Question:Root{type: 'Legs')
CALL apoc.when(hasLegs='Y', 'MERGE (species)-[:LINKS_TO]->(l)','', { l:l, species: species }) YIELD value
WITH value AS ignored, species
RETURN species
Ожидаемый результат - просто, с параметрами: $ name , $ hasLegs .
$ name является MERGE для предотвращения дублирования узлов, однако $ hasLegs равно 'Y' или null .
(разновидности) - [: LINK_TO] -> (вопрос)
Anyпомощь очень ценится!Спасибо!