在3步语句中将apoc.periodic.commit与API调用相结合

时间:2018-11-13 22:01:53

标签: neo4j neo4j-apoc

我正在尝试从match语句中获取一些值,并将它们用作调用apoc.load.json的URL中的变量。

我正在调用的API有很多页面,因此我必须进行分页。为此,我正在使用apoc.periodic.commit,如
所述 Neo4j APOC: Importing data from Strava's paginated JSON API

所以这就像:

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';

这完成了第三步

问题:如何将这三个步骤组合到一个我可以执行的语句中,并遍历第一个语句中的所有名称?我已经尝试过apoc.periodic.rock_n_roll_while过程,但是API调用没有任何结果。我正在进行第二步工作,但是想知道在Cypher中是否有办法做到这一点,或者我是否必须求助于Java或Python?

谢谢。

0 个答案:

没有答案