我正在学习neo4j并且正在制作类似于组织层次结构的东西,其中一个人有一个经理,他有一个经理,他有一个经理等等。
起初我使用了assumptoin,公司的老板没有经理,并且我的需求正在努力向业主展示自己和管理层。
为了解决这个问题,我使用了以下查询,该查询适用于我的简单需求。
MATCH(baseEmployee:Employee)-[:MANAGEDBY*0..]->(manager)
where baseEmployee.Name = 'Josh'
RETURN manager.Name;
但是,如果老板让经理自言自拔,会发生什么。根据我的理解,这将导致无限循环。
如果manager = currentEmployee,我如何阻止匹配跟随MANAGEDBY路径?
答案 0 :(得分:7)
这不会导致无限循环。你必须意识到一个非常重要的路径概念 - 这是你用MATCH
语句规定的内容:
路径可能包含循环(也称为多次相同的节点),但它永远不会使用相同的关系两次。因此,即使老板'经理是他自己,这不会导致无限循环。