2016-12-19 14 views
1

私はいくつかのパスを返すパスを持っています。 nodes(path)次のようになります。私が欲しいものパスからのノードの取得

[a, b, c, d], 
[a, b, e], 
[a, f] 

すると、すべてのノードを取得することです。そのパスを

に変更すると、
a 
b 
c 
d 
e 
f 

となります。さらなるサイファーステートメントでノードを使用してコレクションに残しておけば、私にとってはうまくいきません。

アイデア?

EDIT 1

MATCH(t:THING1 {id:"t1"})-[:AFFECTS]->(x:SOME_NODE), (t)-[:CHANGES]->(SOME_NODE) 
MATCH p=shortestpath((s)-[MY_RELATION*0..4]->(x)) 
WITH collect(nodes(p)) as nodes 
WITH REDUCE(output = [], r IN nodes | output + r) AS flat 

これは、ノードの集合を生成します。これを行に変換して除外することができます。

答えて

5

パスからノードのコレクションを巻き戻して、別のノードのコレクションを戻すことができます。

MATCH(t:THING1 {id:"t1"})-[:AFFECTS]->(x:SOME_NODE), (t)-[:CHANGES]->(SOME_NODE) 
MATCH p=shortestpath((s)-[MY_RELATION*0..4]->(x)) 
UNWIND nodes(p) as n 
RETURN DISTINCT n 
+0

ありがとう、ありがとう。私はUNWINDについて忘れていた。 –

関連する問題