0
我有一個特定的案例,我有兩個標籤Person和Company。 人有兩個節點X和Y,公司有一個單一節點。 這兩人都與公司HAS_EMPLOYEE有關係。Neo4j - 從一個節點穿越到由父節點間接連接的另一個節點
我想找到X和Y之間的關係,即他們爲同一公司工作。
如何在Neo4j中做到這一點?只給出節點X和Y?
我有一個特定的案例,我有兩個標籤Person和Company。 人有兩個節點X和Y,公司有一個單一節點。 這兩人都與公司HAS_EMPLOYEE有關係。Neo4j - 從一個節點穿越到由父節點間接連接的另一個節點
我想找到X和Y之間的關係,即他們爲同一公司工作。
如何在Neo4j中做到這一點?只給出節點X和Y?
這取決於您是否正在尋找特定的連接(通過公司節點),或者只是尋找任何連接。
假設:人員節點有一個名稱,並且該人員節點X和Y具有名稱'x'和'y',因此我們可以與他們匹配。我們還要說你有一個索引:人名(姓名),以便我們可以快速查找節點。
如果我們想要的查詢是「做的人x和y共享相同的公司」,查詢此,在問題返回公司,是:
match (x:Person{name:'x'})<-[:HAS_EMPLOYEE]-(comp:Company)-[:HAS_EMPLOYEE]->(y:Person{name:'y'})
return comp
但是,如果我們不知道如何這些人是連接在一起的,或者即使他們連接上了,那麼我們可能會希望在節點之間運行一個shortestPath()
匹配,並查看連接它們的東西。
它有助於設置此匹配的上限。現在讓我們使用8跳最大值。
match path=shortestPath((x:Person{name:'x'})-[*..8]-(y:Person{name:'y'}))
return path
我正在尋找最短路徑,我們不知道有公司與他們有關。完美的答案。 –