Цепочка UNWIND в запросе на шифрование - PullRequest
0 голосов
/ 21 января 2019

Я пытаюсь использовать два списка для создания узлов / отношений в шифре. Используя решение для этого связанного вопроса , мое текущее решение:

MERGE (t:Test)
WITH t
UNWIND ["a","b"] AS name                      // first list
MERGE (t)-[:FOO_REL]->(a:Foo { name: name })
WITH DISTINCT t
UNWIND [100,200] AS id                        // second list
MERGE (t)-[:BAR_REL]->(b:Bar { id: id })

Это работает, если в обоих списках есть записи. Однако, если первый список пуст, то второй список никогда не разматывается (и не создаются :Bar узлы).

Как мне организовать цепочку UNWIND s, чтобы я мог создавать узлы / отношения из двух отдельных списков в одном запросе?

1 Ответ

0 голосов
/ 21 января 2019

Я закончил, используя FOREACH вместо UNWIND.Поскольку при этом используются круглые скобки вокруг внутреннего запроса, они четко отделены друг от друга:

MERGE (t:Test)
FOREACH (name in ["a","b"] | 
  MERGE (t)-[:FOO_REL]->(a:Foo { name: name })
)
FOREACH (id in [100,200] |
  MERGE (t)-[:BAR_REL]->(b:Bar { id: id })
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...