Cypher查询查找循环引用

时间:2017-02-15 21:07:51

标签: neo4j cypher

鉴于此处找到的示例:http://console.neo4j.org/?id=qzjrxu,我如何识别关系结束于起始节点的节点?

IE:乔 - >账单 - >汤姆 - >乔和亚特 - >亚光

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

对于小到中等的图形,这应该返回受循环引用和路径本身的节点:

MATCH (e)
WHERE SIZE((e)<-[:ManagedBy]-()) <> 0 
AND SIZE(()<-[:ManagedBy]-(e)) <> 0
MATCH path = (e)<-[:ManagedBy*]-(e) 
RETURN e, path

修改

我做了一个小改动,首先过滤掉没有传入和传出的节点:ManagedBy关系,那些永远不会有循环。

此外,强烈建议使用标签将处理的节点减少到最小的集合。