0

私はこのようなグラフを持っています

(user)->[:Comments]->(comment)->[:Comments]->(comment)->[:Comments]->(comment)->(user)

基本的には、ユーザーが作成したコメントの循環リンク リストです。リストは一周し、最終的にユーザーに戻ります。cypher を使用してすべてのコメントを取得するにはどうすればよいですか?

4

1 に答える 1

2

これを試してみると、少し複雑に見えますが、とにかくここにあります。

最後のコメントからユーザーへの関係が :Comments であると仮定します

つまり、代わりに..->(comment)->(user)

私は仮定した..->(comment)-[:Comments]->(user)

START n=node(1) 
MATCH n-[:Comments*0..]->(c) 
WHERE c<>n 
WITH collect(c) AS allComments,n 
WITH last(allComments) AS lastcomment,n,allComments 
WHERE lastcomment-[:Comments]->n 
RETURN allComments

最後のコメント->ユーザー関係がコメントであるため、WHERE c<>n を入力する必要がありました。それ以外の場合は、これは必要ありません (チェーンの最後のコメントを選択するだけです)。また、コレクションを返します。

http://console.neo4j.org/r/17d1fy

賭け @Wes Freeman はより優れたソリューションを持っています

于 2013-07-23T07:08:07.650 に答える