neo4j Cypher 查詢語言簡單案例(二)

2021-08-18 09:09:06 字數 3642 閱讀 5934

圖資料庫常規的有:neo4j(支援超多語言)、janusgraph/titan(分布式)、orientdb,google也開源了圖資料庫cayley(go語言構成)、postgresql儲存rdf格式資料。

—- 目前的幾篇相關:—–

neo4j︱圖資料庫基本概念、操作羅列與整理(一)

neo4j︱cypher 查詢語言簡單案例(二)

neo4j︱cypher完整案例csv匯入、關係聯通、高階查詢(三)

neo4j系列第二篇,乙個簡單的demo案例,從構建-基本內容查詢。

基本用法:

match (node:label) return node.property

match (node1:label1)-->(node2:label2)

where node1.propertya =

return node2.propertya, node2.propertyb

我們通常用圓括號來包含節點標示符(當然也可以不用)。裡面的內容也叫變數,變數不是單指某乙個節點,而是服從條件的節點組合。如(p: person),如果想新增屬性:(p: person )。 注意:節點標籤、關係型別和屬性名稱區分大小寫。

其中節點之間用:』–>』,包含關係的可以用』->』

有以下幾種關係型寫法:

-[rel:knows]-> //單關係,關係的變數名為rel,型別是 knows

(a)-[:knows|:like]->(b) //查詢a到b的兩類關係

--> //附加屬性

-[:knows*..4]-> example: a -[rel: type*minhop..maxhop]-> b

//從a節點到b節點最少可經過minhop、最大可經過maxhop個節點

關係表達,cypher語法:

舉例:

match (n1:label1)-[rel:type]->(n2:label2)

where rel.property >

return rel.property, type(rel)

其功能為:patterns can be used to match and create data, but also (evaluating to a list of paths) in expressions, predicates and results.patterns 模式由乙個或多個路徑組成,路徑間用逗號分隔,一條路徑就是乙個節點和關係的序列,這個序列指定開始和結束節點,如:(a) –> (b),這條路徑開始於a,通過outgoing關係指向b。如果你不在乎具體是哪個節點,不用指定它,只需要用空括號來表示就可以了,如:a –>()–>b。模式是cypher中的關鍵部分,靈活書寫模式能幫我們正確獲取、實現推測計算等等各種任務。

比較費解…

match到』you』節點之後,新建一條關係,是』you』-『like』-『neo4j』。

當create之後,return之後,就會返回三個實體,2個節點+1條關係。

match中,變數-變數,可以用』–>』,關係型的指向用』->』

其中,foreach表示迴圈,反覆create。再來看乙個foreach的案例(from:3.3.15. foreach):

通過關係查詢』you』的朋友圈

建立了』anna』-『amanda』的朋友關係,建立了』amanda』-『neo』的工作關係。

同時,定義了』amanda』的』expert』身份。

先定位自己you,然後去尋找朋友中誰懂neo4j:person->neo,然後尋找最短路徑的:you-person即可達到目的。

不能用you直接關聯neo,而是通過朋友,二度跳轉到neo4j。

此時的(expert)->(neo)值得新手去理解一下,這裡expert不是單獨指定到某個人,而是指代所有worked_with neo的人。

Neo4J Cypher語句 學習

以下節點標籤為people,friend,使用者自己也可以設定成其他標籤,查詢時需要用到標籤。這個標籤可以模擬為關聯式資料庫中的表名 建立節點 小紅 create n people return n 建立關係 小明送禮物給小紅 小明節點id為0,小紅節點id為1 start a node 0 b n...

Cypher查詢語言 Neo4j 綜合 四

目錄 返回節點 返回關係 返回屬性 帶特殊字元的識別符號 列的別名 可選屬性 特別的結果 查詢中的返回部分,返回途中定義的感興趣的部分。可以為節點 關係或其上的屬性。圖返回乙個節點,在返回語句中列出即可。查詢 start n node 2 return n 結果 查詢 start n node 1 ...

Neo4j 空間查詢

1.neo4j自帶函式進行簡單計算 neo4j自帶distance point1,point2 函式,返回乙個浮點數,表示同一座標參照系中兩點之間的測地距離,可以使用round函式來進行四捨五入。目前neo4j3.3版本不支援return直接返回point型別,3.4版本可以。節點型別 節點格式 詳...