簡體   English   中英

在Cypher中查找具有兩個不同關系的節點

[英]Find node having two distinct relationship in Cypher

我是Cypher的新手。 我試圖找到一個查詢,該查詢將返回與其他節點具有多個關系的節點。 有關結構,請參閱http://neo4j.com/docs/snapshot/images/cypher-match-graph.svg 我試圖找到曾在某些電影中飾演過的人以及父親。 當我在查詢下運行時,它給了我0條記錄:

START n=node(*)
MATCH (n)-[r]->()
WHERE type(r)="ACTED_IN" AND type(r)="FATHER"
RETURN n,count(n); 

但是,當我在查詢下運行時,它確實返回數據,但我認為不是我想要的:

START n=node(*)
MATCH (n)-[r]->()
WHERE type(r)="ACTED_IN" OR type(r)="FATHER"
RETURN n,count(n);

因此,基本上,我需要一個查詢,該查詢將僅提取自查理·辛(Charlie Sheen)以來,因為他曾在華爾街電影中飾演過父親

我試圖遵循其他人在Cypher查詢中所說的來查找具有3個關系的節點,或者如何使用cypher查詢Cypher查詢來查找具有3個關系但不能理解技巧的節點 :(

任何幫助將不勝感激!

查詢此問題的正確方法是:

MATCH (p:Person)-[:ACTED_IN]->(), (p)-[:FATHER]->()
RETURN p

您正在尋找具有和ACTED_IN關系並且(由於再次使用了p )具有:FATHER關系的:Person節點。 我在另一端使用匿名節點,因為我們對端點不感興趣-僅連接端點這一事實很有趣。

另一種表達方式:

MATCH ()<-[:FATHER]-(p:Person)-[:ACTED_IN]->()
RETURN p

請注意,您不應再使用START (除非查詢手動索引)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM