小编Nit*_* A.的帖子

如何避免循环或循环路径Neo4j Cypher

使用路径变量时出现问题。

例如我的层次结构看起来像

A-[Knows]-> B   
B-[Knows]-> C  
C-[Knows]-> D  
D-[Knows]-> E  
C-[Knows]-> F  
F-[Knows]-> G  
G-[Knows]-> B 
Run Code Online (Sandbox Code Playgroud)

我的查询是 MATCH p = (x)<-[Knows*]->(y) Return p

关系方向必须是双向的。玩具问题就像A,B,但在实际应用中,我不知道关系的方向。

因此,存在一个循环。从A到C的路径开始寻找。但是在找到C之后,下一步便发生了循环。

如何避免循环或如何忽略它,如何从实际路径中删除或如何在路径以B结尾时停止。我不需要找到第二个B到C。

预期结果 :

A->B->C->D->E
A->B->C->F->G->B  // that is enough. The query must be stopped.
Run Code Online (Sandbox Code Playgroud)

实际结果 :

A->B->C->D->E
A->B->C->F->G->B->C->F->G->B..... loop trouble.
Run Code Online (Sandbox Code Playgroud)

neo4j cypher

5
推荐指数
2
解决办法
1783
查看次数

标签 统计

cypher ×1

neo4j ×1