![](/img/trans.png)
[英]Cypher: Finding a node based on its number of distinct relationship types
[英]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.