Запрос Cypher для создания нескольких узлов и связей
я пытаюсь написать запрос шифрования для создания нескольких узлов и отношений в одном запросе. Документация по использованию CREATE предложения в Cypher утверждают, что невозможно создать несколько узлов разных типов в единственном числе CREATE предложения.
CREATE ' s. Несколько похожих ответов, которые я прочитал, указывают на одно и то же решение. Я пытался сделать это и продолжаю получать ответ. ошибка.
Error: If you create multiple elements, you can only create one of each.
вот краткий обзор того, что я пытаюсь сделать.
- создать
itemузел. - создать несколько
representationузлы. - создайте связь между созданным
itemузел и существующийstackузел. - создать несколько отношений между созданными
itemузел и создалrepresentationузлы.
это запрос, который я сейчас использую, который пытается сломать все отдельные части CREATE процесс на отдельные шаги.
START stack=node({stack})
CREATE (item {item})
CREATE (representations {representations})
CREATE (stack)-[:Item]->(item)
CREATE (item)-[:Representation]->(representations)
RETURN item, representations
я пробовал несколько вариантов вышеуказанного запроса, включая созданиеitem и representation узлы в начале запроса.
я был бы очень признателен за любой совет. Я действительно не хочу прибегать к нескольким вызовам базы данных, если этого можно избежать.
1 ответов
ваша представлений списка ? Тогда вы можете иметь это только как единственный оператор create.
Я предполагаю, что Neo4j 1.9 из вашего синтаксиса.
что вы можете сделать, это использовать FOREACH
START stack=node({stack})
CREATE (item {item})
CREATE (stack)-[:Item]->(item)
FOREACH (r in {representations} :
CREATE (representation {r}), (item)-[:Representation]->(representation)
)
MATCH (item)-[:Representation]->(representations)
RETURN item, representations