2015-08-27 88 views
-1

我開始使用Neo4j和密碼,並嘗試使用默認的電影圖形進行遊戲。如何查找與> 1路徑連接並返回其連接節點的節點?

我想找到所有與湯姆漢克斯在多部電影中合作的演員,並列出他們一起工作的電影。

尋找電影的演員和工程量

MATCH p=(a {name:"Tom Hanks"})-[r*2]-(b) 
WITH count(p) AS commonMovies, a, b 
WHERE commonMovies > 1 
RETURN DISTINCT commonMovies, b.name 
Order By commonMovies DESC; 

輸出:

3 |梅格瑞恩

2 |加里辛尼斯

發現他們在共同合作的電影作品爲與湯姆·漢克斯合作的所有行動者:

MATCH p=(a {name:"Tom Hanks"})-[r*2]-(b) 
RETURN b.name, extract(n in nodes(p)[1..-1] | n.title); 

輸出:

湯姆·漢克斯|你做的那件事

Liv Tyler |你做的那件事

查理茲·塞隆|你做的那件事

Nora Ephron | Zou've收到一封電子郵件

我想擁有的是一樣的東西:

演員| [電影陣列]

我認爲問題是我與count(p)聚合,但事後我無法從每個路徑中提取節點。至少這對我來說似乎是個問題。

謝謝!

回答

1

您當前的查詢可能會返回湯姆·漢克斯本人,這一次做的工作:

MATCH (n:Person {name:'Tom Hanks'})-->(m:Movie)<--(other) 
WITH other.name as coActor, collect(m.title) as movies 
WHERE size(movies) > 1 
RETURN coActor, movies