簡體   English   中英

如何在Neo4j中找到2類節點的關系?

[英]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模式部分中可以找到更多的關系匹配模式

https://neo4j.com/docs/cypher-refcard/current/

暫無
暫無

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

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