Запрос 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