我正在尝试从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?
谢谢。