找到未知数量关系的最后一个节点

时间:2015-06-13 15:16:14

标签: neo4j cypher

我可以找到像这样的最后一个节点

MATCH p=(a)-->(b)-->(c)
WHERE a.name='Object' AND c:Prime
RETURN c

但是,如果我不知道两个节点之间有多少关系 - >() - >(),我将如何找到最后一个节点?

我试图通过Lable名称找到最后一个节点名称。最后一个节点没有任何传出关系。

1 个答案:

答案 0 :(得分:3)

这将在任意长路径中找到c,其中c没有传出关系。

MATCH p=(a)-[*]->(c:Prime)
WHERE a.name='Object' 
AND not( c-->() )
RETURN c

通常建议在查询中使用关系类型(如果可能/实用),并在匹配可以进行的跳数上设置向上的边界。下面的示例仅遵循类型CONNECTION在一个方向上与最多5个关系的关系。

MATCH p=(a)-[:CONNECTION*..5]->(c:Prime)
WHERE a.name='Object' 
AND not( c-->() )
RETURN c