只要有行,就重复neo4j cypher查询

时间:2018-11-04 08:34:51

标签: neo4j cypher

下面的查询有效,并且我希望只要有结果就重复运行查询。最终,随着每次迭代我将b:MAINS_CS上的已处理属性设置为1,查询将返回零记录。我对所有查询返回的所有记录感兴趣。

我尝试使用可变长度关系,但查询似乎运行非常缓慢。

是否有某种方法可以在cypher中实现,而不必每次都手动执行查询?我正在尝试在Neo4j浏览器中实现这一目标。

MATCH (a:MAINS_CS)-[:Connects]-(joint:MAINS_JOINT)-[:Connects]-(b:MAINS_CS {cs_source_way_id:a.cs_source_way_id})
WHERE a.cs_source_way_id > 0 AND a.processed = 1 AND b.processed <> 1
SET b.processed = 1
RETURN
  a.node_number as parent_spid,
  b.node_number as child_spid,
  joint.node_type as joint_type

1 个答案:

答案 0 :(得分:2)

想法

看看周期性的Cypher执行:

CALL apoc.periodic.COMMIT('<place your query here>', {limit: 10000});

说明

  

”特别是对于图形处理,重复运行查询很有用   在单独的交易中,直到它无法处理并生成任何交易   结果了。因此,您可以分批迭代那些   不满足条件并对其进行更新,以便以后再执行。

     

该查询在单独的事务中重复执行,直到执行为止   返回0。”

(取自Neo4j APOC procedure index at GitHub