防止neo4j中出现无限循环

时间:2014-10-13 17:23:17

标签: neo4j

我正在学习neo4j并且正在制作类似于组织层次结构的东西,其中一个人有一个经理,他有一个经理,他有一个经理等等。

起初我使用了assumptoin,公司的老板没有经理,并且我的需求正在努力向业主展示自己和管理层。

为了解决这个问题,我使用了以下查询,该查询适用于我的简单需求。

MATCH(baseEmployee:Employee)-[:MANAGEDBY*0..]->(manager) 
where baseEmployee.Name = 'Josh'
RETURN manager.Name;
但是,如果老板让经理自言自拔,会发生什么。根据我的理解,这将导致无限循环。

如果manager = currentEmployee,我如何阻止匹配跟随MANAGEDBY路径?

1 个答案:

答案 0 :(得分:7)

这不会导致无限循环。你必须意识到一个非常重要的路径概念 - 这是你用MATCH语句规定的内容:

路径可能包含循环(也称为多次相同的节点),但它永远不会使用相同的关系两次。因此,即使老板'经理是他自己,这不会导致无限循环。