特定のグラフノードにリンクされている要素の一意のセットを取得しようとしています。いくつかのノードがNeo4jグラフデータベースにロードされており、それらは「TO」関係を使用して接続されています(たとえば、ノード6は「TO」ノード7に接続します)。以下を使用して、開始ノードと「TO」関係によってリンクされている他のノードとの間のすべてのパスを取得できました。
start a = node(6)
match p = (a)-[r:TO*..]->(b)
return distinct EXTRACT(n in nodes(p): n);
これにより、異なる出力パスが得られますが、ノード値が重複しています。例:
+-------------------------------------------------------+
| p |
+-------------------------------------------------------+
| [Node[6]{},:TO[5] {},Node[7]{}] |
| [Node[6]{},:TO[5] {},Node[7]{},:TO[9] {},Node[11]{}] |
etc...
これらのパスを組み合わせて、一意のパス値を含む単一のリストにするにはどうすればよいですか? COLLECTを使用してみましたが、上記の結果のネストされたバージョンになります。
start a = node(6)
match p = (a)-[r:TO*..]->(b)
return collect(distinct p);
[[Node[6]{},:TO[5] {},Node[7]{}],[Node[6]{},:TO[5] {},Node[7]{},:TO[9] {}, ... ]