Neo4J高級語法

假設(shè)存在如下關(guān)系:

CREATE(P1{id:1,name:'P1'}), (P2{id:2,name:'P2'}), (P3{id:3,name:'P3'}), (P4{id:4,name:'P4'}), (P5{id:5,name:'P5'}),(P1)-[:FRIENDS]->(P2),(P1)-[:FRIENDS]->(P3),(P2)-[:FRIENDS]->(P4),(P3)-[:FRIENDS]->(P5)

查詢從P1開始的第二層關(guān)系:

MATCH (P1 {name : "P1"})-[r:FRIENDS*2]->(FF) return P1,FF,r;

查詢從P1開始的第一、二層關(guān)系:

MATCH(P1{name :"P1"})-[r:FRIENDS*1..2]->(FF) ?return P1,FF,r;

查詢結(jié)果如果想包含P1則可以使用[r:FRIENDS*0..2]

查詢從P1到P5的路徑長度:

MATCH PP1=(P1 {name : "P1"})-[r:FRIENDS*1..2]->(FF{name : "P5"}) return length(PP1);

或MATCH (P1 {name : "P1"})-[r:FRIENDS*1..2]->(FF{name : "P5"}) return length(r);

判斷兩個用戶的關(guān)系是否直接連得通:

MATCH (P1 {name : "P1"}),(P2 {name : "P2"}) MATCH (P1)-[r:FRIENDS]->(P2) return P1,P2;

如果有返回結(jié)果就連得通,否則連不通。

獲得兩個節(jié)點間的最短路徑:

MATCH (A {name : "P1"}),(B {name : "P5"}) MATCH p=shortestPath((A)-[*..15]->(B)) return A,B,p;

其中[*..15]的15為最大的關(guān)系長度,如果想找出所有最短路徑則使用allShortestPaths

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容

  • 工廠模式類似于現(xiàn)實生活中的工廠可以產(chǎn)生大量相似的商品,去做同樣的事情,實現(xiàn)同樣的效果;這時候需要使用工廠模式。簡單...
    舟漁行舟閱讀 7,827評論 2 17
  • 上一篇學習的UITableView的創(chuàng)建和基礎(chǔ)使用,當然這只是單機而已,下面我們來學習聯(lián)網(wǎng),額!貌似學習的有點跳,...
    繁華亂世滄桑了誰的容顏閱讀 1,071評論 0 2
  • 為何叫做 shell ? shell prompt(PS1) 與 Carriage Return(CR) 的關(guān)系?...
    Zero___閱讀 3,182評論 3 49
  • 使用說明 av號和cid號 av號:http://www.jijidown.com/ cid號:http://co...
    愛咪哆閱讀 2,867評論 2 2
  • 類別 對于 iOS 開發(fā)者來說,對于類別肯定不陌生,在 OC 的API 中有很多的類都有自己的類別,既然如此,那么...
    redye閱讀 985評論 0 3