只要有行,就重复neo4j cypher查询
下面的查询可以工作,我希望重复运行查询,只要它有结果。最终,当我在每次迭代中将b:MAINS_CS上的processed属性设置为1时,查询将返回零个记录。我对所有查询返回的所有记录感兴趣 我尝试过使用可变长度的关系,但是查询似乎运行得非常慢 是否有某种方法可以在cypher中实现这一点,而无需每次手动执行查询?我正试图在Neo4j浏览器中实现这一点只要有行,就重复neo4j cypher查询,neo4j,cypher,Neo4j,Cypher,下面的查询可以工作,我希望重复运行查询,只要它有结果。最终,当我在每次迭代中将b:MAINS_CS上的processed属性设置为1时,查询将返回零个记录。我对所有查询返回的所有记录感兴趣 我尝试过使用可变长度的关系,但是查询似乎运行得非常慢 是否有某种方法可以在cypher中实现这一点,而无需每次手动执行查询?我正试图在Neo4j浏览器中实现这一点 MATCH (a:MAINS_CS)-[:Connects]-(joint:MAINS_JOINT)-[:Connects]-(b:MAINS_C
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
匹配(a:MAINS\u CS)-[:Connects](连接:MAINS\u joint)-[:Connects](b:MAINS\u CS{CS\u source\u way\u id:a.CS\u source\u way\u id})
其中a.cs_source_way_id>0,a.processed=1,b.processed=1
设置b.processed=1
返回
a、 节点号作为父节点号,
b、 节点号作为子节点号,
joint.node_类型作为joint_类型
Idea
查看循环密码执行:
CALL apoc.periodic.COMMIT('<place your query here>', {limit: 10000});
调用apoc.periodic.COMMIT(“”,{limit:10000});
解释
“尤其对于图形处理,重复运行查询非常有用
在单独的事务中,直到它不处理并生成任何
所以你可以批量迭代那些
不要满足某个条件,并更新它们,以便它们在以后满足
查询将在单独的事务中重新执行,直到
返回0。“
(摘自)创意
查看循环密码执行:
CALL apoc.periodic.COMMIT('<place your query here>', {limit: 10000});
调用apoc.periodic.COMMIT(“”,{limit:10000});
解释
“尤其对于图形处理,重复运行查询非常有用
在单独的事务中,直到它不处理并生成任何
所以你可以批量迭代那些
不要满足某个条件,并更新它们,以便它们在以后满足
查询将在单独的事务中重新执行,直到
返回0。“
(摘自)如果OP不要求返回数据,这就足够了。不幸的是,您无法使用apoc.periodic.commit返回数据如果OP不要求返回数据,这就足够了。很遗憾,您无法使用apoc.periodic.commitd返回数据根据您运行的Neo4j版本,您可能可以在Neo4j浏览器中启用“启用多语句查询编辑器”(单击左下角的齿轮图标,然后查找选项)。在这种情况下,在查询的末尾添加一个分号,然后复制粘贴到freedom!根据您正在运行的Neo4j版本,您可能能够在Neo4j浏览器中启用“启用多语句查询编辑器”(单击左下角的齿轮图标,然后查找该选项)。在这种情况下,在查询的末尾添加一个分号,然后复制粘贴到freedom!