2016-12-19 160 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。 –