Создание узлов из списка (UNWIND) в neo4j - PullRequest
0 голосов
/ 12 мая 2019

После размотки json-файла я получаю список строк в качестве вывода, который необходимо создать как узел.

Запрос, который возвращает список URL-адресов (строка): -

WITH {json} AS document
UNWIND document.log.entries AS API
UNWIND API.request.url as a
RETURN a

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

FOREACH (n IN nodes(a) | CREATE (n))

но получаю исключение. нужна помощь с запросом.

1 Ответ

0 голосов
/ 13 мая 2019

Если значение a является строкой URL, то:

  • NODES(a) не будет работать, так как аргумент NODES() должен быть path .
  • Кроме того, FOREACH даже не требуется, поскольку a - это скалярное значение (строка), а не список.

Вот пример создания узлов, содержащих строку URL:

WITH $json AS document
UNWIND document.log.entries AS API
UNWIND API.request.url as a
CREATE (f:Foo {url: a});

Приведенный выше запрос также использует $json вместо устаревшего синтаксиса {json}.

В качестве альтернативы, если вы удалили последнее предложение UNWIND, вот как вы можете использовать FOREACH:

WITH $json AS document
UNWIND document.log.entries AS API
FOREACH(a IN API.request.url | CREATE (f:Foo {url: a}));
...