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