如何在neo4j中获取路径中的最后一个节点? [英] how to get the last node in path in neo4j?
本文介绍了如何在neo4j中获取路径中的最后一个节点?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在这个密码查询中,与 STATUS="on" 属性有关系的节点之间的最长路径/路径将被返回,但我还想获得路径/路径的最后一个节点.>
查询:
START n=node(*)匹配 p=n-[rels:INCLUDE*]->mWHERE ALL (rel IN relsWHERE rel.status='on')WITH COLLECT(p) AS 路径,MAX(length(p)) AS maxLength返回过滤器(路径中的路径WHERE length(path)= maxLength) AS 最长路径
我应该如何将它添加到查询中?谢谢.
解决方案
这将给出两个数组.第一个数组是每个路径中的最后一项,第二个是每个路径:
START n=node(*)匹配 p=n-[rels:INCLUDE*]->mWHERE ALL (rel IN relsWHERE rel.status='on')WITH COLLECT(p) AS 路径,MAX(length(p)) AS maxLengthWITH FILTER(path IN paths WHERE length(path)= maxLength) ASlongestPathsRETURN EXTRACT(path INlongestPaths | LAST(path)) 作为最后一个,longestPaths
In this cypher query,the longest path/paths between nodes which have relationship with STATUS="on" property with each other,will be returned,but I want to get also the last node of the path/paths.
query:
START n=node(*)
MATCH p=n-[rels:INCLUDE*]->m
WHERE ALL (rel IN rels
WHERE rel.status='on')
WITH COLLECT(p) AS paths, MAX(length(p)) AS maxLength
RETURN FILTER(path IN paths
WHERE length(path)= maxLength) AS longestPaths
how should I add it to the query? thanks.
解决方案
This would give two arrays. The first array is the last item in each path, the second is each path:
START n=node(*)
MATCH p=n-[rels:INCLUDE*]->m
WHERE ALL (rel IN rels
WHERE rel.status='on')
WITH COLLECT(p) AS paths, MAX(length(p)) AS maxLength
WITH FILTER(path IN paths WHERE length(path)= maxLength) AS longestPaths
RETURN EXTRACT(path IN longestPaths | LAST(path)) as last, longestPaths
这篇关于如何在neo4j中获取路径中的最后一个节点?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文