0

我有一个看起来像这样的图表

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

基本上,它是用户发表的评论的循环链接列表。该列表环绕并最终回到用户处。如何使用 cypher 检索所有评论?

4

1 回答 1

2

对此进行了尝试,对我来说它看起来有点令人费解,但无论如何它就是这样。

假设从最后一条评论到用户的关系是:评论

即代替..->(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 回答