2017-01-15 9 views
0

パスがあり、このパスにいくつかのエッジで接続されたノードを取得したいとします。私はこのqweryを書いたが、正常に動作していない:neo4jのパスのネイバーのノードを取得する方法

match p=(a)-[:example*]->(c) where length(p) = 5 
with p 
match (u)-[r:example2]-> p return u,p,r 

私はすべてのノード 'u'を取得したい。 私が間違っていることを教えてください。

ありがとうございました。

+0

ようこそスタックオーバーフロー!エディタを使用してクエリをソースコードとしてフォーマットしてください。 –

+0

done、ありがとう –

答えて

0

nodes()ファンクション、UNWINDファンクションを使用してパスのノードを抽出し、一致を実行します。各ノードの結果をcollectにすることもできます。a

match p=(a)-[:example*]->(c) 
where length(p) = 5 
with a, nodes(p) as pathNodes 
unwind pathNodes as pathNode 
match (u)-[r:example2]->(pathNode) 
return a, collect([u, pathNode]) 
+0

こんにちは、ありがとう、しかし、パスのnの場所だけでなく、すべてのノードを得るにはどうすればいいですか?(p [n]) –

+0

それに応じて私の回答が更新されました。あなたのユースケースに応じて 'u'または' pathNode'ノードだけを収集したいかもしれないことに注意してください。 –

+0

ありがとう、それは働いた! (私はuの数だけ必要でした) –

関連する問題