[英]How to find relationships of 2 types of nodes in Neo4j?
我在Neo4j db中存儲了兩種類型的節點:Person和Group。 我定義了Person和Group之間的關系“ IN”:( (p:Person)-[:IN]->(g:Group)
。
問題是給定2個Person節點,我如何找到它們之間的關系?
我知道我可以使用Cypher查詢,例如
MATCH (p1:Person{pid: '11231'})-[:IN]->(g:Group)<-[:IN]-(p2:Person{pid: '1231231'})
RETURN p1,p2,g;
但是,如何描述多跳關系,以便Neo4j可以找到兩個未直接鏈接的Person節點之間的鏈接? 我不知道鏈接這兩個Person節點需要多少跳。
您可以在下面使用Cypher查詢:
MATCH (p1:Person{pid: '11231'})-[:IN*]-(p2:Person{pid: '1231231'}) return p1,p2;
注意:關系IN中的*可以解決問題。
但是,這是一種低效的方法,您應該限制跳數,如下所示:
MATCH (p1:Person{pid: '11231'})-[:IN*1..5]-(p2:Person{pid: '1231231'}) return p1,p2;
在cyref refcard模式部分中可以找到更多的關系匹配模式
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.