如何获取neo4j链表中的所有节点?

时间:2013-12-23 09:03:44

标签: linked-list neo4j cypher

在neo4j中我有以下结构(基本上是链表的链表):

(projects)
     |
[LatestProject]
     |
     V
(p1:Project)-[LatestTask]->(t1:Task)-[PrevTask]->(t2:Task)-[PrevTask]->(t3:Task)
     |
[PrevProject]
     |
     V
(p2:Project)-[LatestTask]->(t4:Task)-[PrevTask]->(t5:Task)-[PrevTask]->(t6:Task)
     |
[PrevProject]
     |
     V
(p3:Project)-[LatestTask]->(t7:Task)-[PrevTask]->(t8:Task)

我想编写一个Cypher查询,给定项目ID,返回所有任务(从最新的任务到最旧的任务)。

我尝试了以下内容:

start p=node(2)  // project ID = 2 
MATCH p-[:LatestTask]->(first:Task)-[:PreviousTask*]->(t:Task) 
return first, t

但是这会返回一个包含多行的表:

(first) (t1)
(first) (t2)

如何返回以下内容?

(first)
(t1)
(t2) 

1 个答案:

答案 0 :(得分:1)

我想我找到了自己问题的答案:

start p=node(2)  // project ID = 2 
MATCH p-[:LatestTask|PreviousTask*]->(t:Task) 
return t

似乎将正确的集合返回为三个单独的行。