- 精通Neo4j
- 龐國明等
- 1060字
- 2023-07-17 19:00:53
2.4.3 查詢關系
接下來講解MATCH指令更多的用法。
2.4.3.1 查找演員參演的電影
【程序2-8】查找“Tom Hanks”參演過的電影的名稱

上述指令首先匹配節(jié)點類型為Person、屬性為{name: "Tom Hanks"}的節(jié)點,然后匹配這些節(jié)點中具有關系[:ACTED_IN],并且此關系指向某個電影節(jié)點的節(jié)點。返回結果如圖2-60所示。

圖2-60 Tom Hanks參演過的電影
通過結果可以看到演員Tom Hanks參演過的所有電影。
【程序2-9】查找誰導演了電影“Cloud Atlas”

上面指令首先匹配屬性為{title: "Cloud Atlas"}的節(jié)點,然后匹配這些節(jié)點中具有關系[:DIRECTED]并且是被某個節(jié)點指向的節(jié)點,再返回匹配節(jié)點的name屬性。返回結果如圖2-61所示。

圖2-61 電影Cloud Atlas的導演名單
通過結果可以看到Lily Wachowski、Lana Wachowski、Tom Tykwer導演了電影Cloud Atlas。
【程序2-10】查找與Tom Hanks同出演過電影的人

上面指令首先匹配節(jié)點類型為Person、屬性為{name:"Tom Hanks"}的節(jié)點,然后匹配這些節(jié)點中通過[:ACTED_IN]關系指向的節(jié)點m,并且同時匹配某個節(jié)點coActors也通過[:ACTED_IN]關系指向的節(jié)點m,然后返回匹配節(jié)點m的name屬性。返回結果如圖2-62所示。

圖2-62 與Tom Hanks出演過同一部電影的人
這樣就查出了與Tom Hanks出演過同一部電影的人的姓名。
【程序2-11】查找與電影“Cloud Atlas”相關的所有人

上面指令首先匹配節(jié)點類型為Person的節(jié)點,然后匹配節(jié)點類型為Movie、節(jié)點屬性為{title:"Cloud Atlas"}的節(jié)點,最后匹配兩者之間存在某種關系(無論是導演還是演員關系)的情況,然后將人名、電影的關系類型、電影的關系同時返回。返回結果如圖2-63所示。

圖2-63 與電影“Cloud Atlas”相關的所有人
通過結果可以看到返回了三列數(shù)據(jù),這與RETURN語句后面的people.name、Type(relatedTo)、relatedTo相對應。
2.4.3.2 查詢關系路徑
你或許聽說過“六度空間”理論,也就是說,世界上任何兩個人,他們之間最多通過6條關系路徑就可以相互聯(lián)系到彼此。使用Neo4j的關系路徑查詢,可以查找任意深度的關系路徑,也就很輕松地能夠?qū)崿F(xiàn)人脈關系查詢了。
【程序2-12】查找與演員Kevin Bacon存在4條及以內(nèi)關系路徑的任何演員和電影

上面指令首先匹配節(jié)點類型為Person、屬性為{name: " Kevin Bacon "}的節(jié)點,然后將關系深度限制為從1到4再進行遍歷,最后返回匹配的所有節(jié)點。返回結果如圖2-64所示。

圖2-64 與演員Kevin Bacon存在4條及以內(nèi)關系的演員和電影
通過結果可以看到演員Kevin Bacon的4度關系以內(nèi)的演員和電影網(wǎng)絡是很龐大的。
【程序2-13】查找與演員Kevin Bacon與Meg Ryan之間的最短關系路徑

上面指令首先匹配節(jié)點類型為Person、屬性為{name: "Kevin Bacon"}的節(jié)點,再匹配節(jié)點類型為Person、屬性為{name: "Meg Ryan"}的節(jié)點,兩者用[*]關系操作符相連,代表兩者存在任意深度的關系,然后使用shortestPath方法返回兩者在所有深度關系遍歷路徑中最短的一條。返回結果如圖2-65所示。

圖2-65 “Kevin Bacon”與“Meg Ryan”之間的最短關系路徑
通過結果可以看到演員Meg Ryan與Tom Hanks同參演過Joe Versus the Volcano電影,而Tom Hanks與Kevin Bacon同參演過Apollo 13電影,這就是他們兩者之間的最短關系路徑。
- R數(shù)據(jù)科學實戰(zhàn):工具詳解與案例分析(鮮讀版)
- Enterprise Integration with WSO2 ESB
- 數(shù)據(jù)架構與商業(yè)智能
- 數(shù)據(jù)庫原理與應用(Oracle版)
- Microsoft Power BI數(shù)據(jù)可視化與數(shù)據(jù)分析
- 數(shù)據(jù)中心數(shù)字孿生應用實踐
- 大數(shù)據(jù)架構商業(yè)之路:從業(yè)務需求到技術方案
- 企業(yè)級容器云架構開發(fā)指南
- TextMate How-to
- Instant Autodesk AutoCAD 2014 Customization with .NET
- Mastering LOB Development for Silverlight 5:A Case Study in Action
- The Natural Language Processing Workshop
- 數(shù)據(jù)應用工程:方法論與實踐
- 基于數(shù)據(jù)發(fā)布的隱私保護模型研究
- MySQL 8.0從入門到實戰(zhàn)