Neo4j:迭代节点ID并调用一个过程

时间:2016-05-17 11:01:18

标签: neo4j

Neo4j(3.0.1)是否有办法在特定标签的所有节点ID上运行,并对每个ID应用一个过程?

目前我正在做类似的事情:

MATCH (p:Person) CALL example.myprocedure(ID(p)) RETURN p

但我不想退货。 MATCH迫使我返回一个值。

最终的迭代也可以并行化吗?

1 个答案:

答案 0 :(得分:3)

neo4j-apoc-procedures有一个名为rock_n_roll的过程,允许您迭代某些内容,然后使用可配置的事务批量大小执行操作。我想这与你正在寻找的东西非常接近。

示例:

CALL apoc.periodic.rock_n_roll(
   'MATCH (p:Person) RETURN p', // what we iterate over
   'WITH {p} as p SET p.lastname = p.name', // action to take for each iteration
   5000 // tx batch size
)