我有一条返回许多路径的路径。 nodes(path)
看起来像:
[a, b, c, d],
[a, b, e],
[a, f]
我想要的是获得所有节点。所以将该路径转换为
a
b
c
d
e
f
会很棒。我想继续在其他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
这会产生一组节点。现在将其转换为行并重复删除...
答案 0 :(得分: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