Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
只要有行,就重复neo4j cypher查询_Neo4j_Cypher - Fatal编程技术网

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

只要有行,就重复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

下面的查询可以工作,我希望重复运行查询,只要它有结果。最终,当我在每次迭代中将b:MAINS_CS上的processed属性设置为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
匹配(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!