neo4j:获取路径中的最后一个节点

neo4j: Get last node in a path

我是 neo4j 的新手,我设法创建了节点和它们之间的关系。但现在我正在尝试获取最后一个节点。鉴于我有以下图表:

每个节点引用前一天。现在我想从“第 1 天”开始获取最后一个节点(“第 4 天”)以确定它的日期。我怎样才能做到这一点?在我阅读 https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-endnode 之后,我尝试了 MATCH mypath = (b:Days)<-[prevDay]-(endnode) RETURN endNode(prevDay) AS lastDay。不幸的是,此查询 returns 我第 1 天、第 2 天和第 3 天。最后一天(“第 4 天”)未返回。那么我怎样才能只获得“第 4 天”呢?

您可以使用variable-length relationship patterns例如:

MATCH path=(:Days)<-[:prevDay*]-(lastDay:Days)
WITH lastDay
ORDER BY LENGTH(path) DESC
LIMIT 1
RETURN lastDay

我会这样做:

MATCH path=(:Days {name:'Day 1'})<-[:prevDay*]-(lastDay:Days)
WHERE NOT (lastDay)<-[:prevDay]-()
RETURN lastDay