Объединение apoc.periodic.commit в трехэтапной инструкции с вызовом API - PullRequest
0 голосов
/ 14 ноября 2018

Я пытаюсь получить некоторые значения из оператора сопоставления и использовать их в качестве переменных в URL-адресе вызова apoc.load.json.

У API, который я вызываю, есть разные страницы, поэтому я должен разбить на страницы.Для этого я использую apoc.periodic.commit, как описано в
Neo4j APOC: импорт данных из разбитого на страницы JSON API Strava

Так что это будет что-то вроде:

match (p:Person)
with p.name as all_names;

это завершает первый шаг и передает строку all_names шагу вложения

call apoc.periodic.commit("
match (import:Import)
with all_names, import.page as page
with 'https://someurl.com/api/q='+all_names+'&p='+page+' as url
call apoc.load.json(url) yield value
with all_names, value.address as addr
merge (a:Address {address:addr}<-(:lives_in)-(p:Person {name:all_names})
foreach (//some code to go through the pagination) r
return count
"), {};

Это завершает второй шаг

MATCH (import:Import) set import.page ='1';

Это завершает третий шаг

Вопрос: Как мне объединить 3 шага в одном операторе, который я могу выполнить, и который перебирает все имена в первом операторе?Я пробовал apoc.periodic.rock_n_roll_while процедуру, но я не получаю никаких результатов от вызова API.У меня работает второй шаг, но мне интересно, есть ли способ сделать это в Cypher или мне нужно прибегнуть к Java или Python?

Спасибо.

...