从路径获取节点

Ton*_*nis 2 neo4j cypher

我有一条路径可以返回许多路径.nodes(path)好像:

[a, b, c, d],
[a, b, e],
[a, f]
Run Code Online (Sandbox Code Playgroud)

我想要的是获得所有节点.所以将那条路径转换为

a
b
c
d
e
f
Run Code Online (Sandbox Code Playgroud)

会很好.我想继续在其他cypher语句中使用节点,因此将它们留在集合中对我来说不起作用.

有任何想法吗?

编辑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
Run Code Online (Sandbox Code Playgroud)

这会生成一组节点.现在将其转换为行并重复删除...

Dav*_*ett 6

您可以从路径中展开节点集合,然后返回不同的节点.

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
Run Code Online (Sandbox Code Playgroud)