10

このサイファー クエリでは、STATUS="on" プロパティと関係のあるノード間の最長パスが返されますが、パスの最後のノードも取得したいと考えています。

クエリ:

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

どのようにクエリに追加すればよいですか? ありがとう。

4

4 に答える 4

8

これにより、2 つの配列が得られます。最初の配列は各パスの最後の項目で、2 番目は各パスです。

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
于 2013-11-04T21:03:28.807 に答える