在cypher语句中复制Neo4j浏览器自动完成功能

Arm*_*inD 3 neo4j cypher r-neo4j

我试图仅使用密码查询来复制neo4j浏览器界面的"自动完成"功能.成功实现意味着如果在浏览器中执行查询,则切换自动完成按钮将不起作用,因为在查询中指定了所有"附加关系".

我使用浏览器对查询进行原型设计,然后使用RNeo4j来实现它们.理想情况下,我希望RNeo4j结果与浏览器结果相匹配,包括自动完成.

例如,考虑查询:

`MATCH p = (n:label1 {name:'tom'})-[r*2..3]-(n:label1 {name:'jerry'})
RETURN p`
Run Code Online (Sandbox Code Playgroud)

在浏览器中,自动完成关闭,我只得到我要求的内容(如预期的那样),而当启用自动完成时,我获得路径上任何节点之间的所有关系,其中两个节点都不是"tom"或"杰瑞".

我尝试使用WITH后跟第一个后面的第二个MATCH,MATCH但这不会产生我需要的结果.

任何帮助非常感谢!

cec*_*ode 6

自动完成功能会再次调用以获取它当前具有的所有节点ID之间的关系

match a-[r]-b where id(a) in [1,2...] and id(b) in [1,2,3...] return r
Run Code Online (Sandbox Code Playgroud)

  • 太好了,这很完美.为了完成我上面的例子,这就是我做的:`MATCH p =(n:label1 {name:'tom'}) - [r*2..3] - (n:label1 {name:'jerry'} )UNWIND节点(p)作为all节点WITH COLLECT(ID(allnodes))AS ALLID MATCH(a) - [r2] - (b)其中ID(a)IN ALLID和ID(b)IN ALLID RETURN rx`现在是密码查询返回与浏览器自动完成相同的结果 (3认同)