Neo4j用法小記

2021-08-31 16:03:54 字數 4450 閱讀 5496

jdk安裝、配置

解壓、設定環境變數

neo4j_home 本機位址

path %neo4j_home%\bin

命令啟動 neo4j.bat console

如果出現錯誤"powershell命令提示符出現「不是內部或外部命令,也不是可執行的程式或批處理檔案",

解決方法:在環境變數path後新增powershell的路徑——c:\program files\tortoisesvn\bin

web訪問

初始使用者: neo4j 初始密碼: neo4j

也可命令列訪問 (暫時忽略)

// 格式

create (node_name:lable_name

);// node_name 型別於關係型資料庫的表的別名(建立節點之後,這個東西就不知道什麼用了)

// label_name 類似於表明一樣,表明一類實體

// 例子

create (dog:dog);

// 查詢節點的某個屬性

match(node_name:node_label)

where node_name.key1=value1

return node.key3 as key3

// 查詢整個節點

match(node_name:node_label)

where node_name.key1=value1 and/or node_name.key2>value2

return node_name

// 例如

match (dog:dog)

where dog.name = 『dog_name』

return dog

relationship

// 給現有節點新增關係

match (a:a),(b,b)

where a.key1=value1 and b.key2=value2 or …

create (a)-[r:r]->(b)

// 新建節點的同時建立關係,甚至可以在後面追加return

create (a:a)-[r:r]->(b:b)

return r

// 查詢關係

match (a:a)-[r:r]->(b:b)

where a.key1=value1 or r.key2=value2 and b.key3=value3

return r

delete 刪除節點或關係,在刪除節點前,必須先刪除其相關關係

// 刪除節點

match (a:a)

where a.key1=value1

delete a

// 刪除節點的屬性

match (a:a)

where a.key1=value1

delete a.key1

match (a:a)

delete a

// 刪除所有a\b之間的r關係

match (a:a)-[r:r]->(b:b)

delete r

// 同時刪除關係和節點

match (a:a)-[r:r]->(b:b) where a.key1=value1 delete a,b,r

資料初始化建立語句:

create (philip:person )-[:is_friend_of]->(emil:person ), (philip)-[:is_friend_of]->(michael:person ), (philip)-[:is_friend_of]->(andreas:person ) create (sushi:cuisine ), (nyc:city ), (isushi:restaurant )-[:serves]->(sushi),(isushi)-[:located_in]->(nyc), (michael)-[:likes]->(isushi), (andreas)-[:likes]->(isushi), (zam:restaurant )-[:serves]->(sushi),(zam)-[:located_in]->(nyc), (andreas)-[:likes]->(zam)

問題:(1)new york都有哪些餐廳?

(2)philip朋友的朋友是誰?

(3)給philip推薦他朋友愛吃的位於紐約的餐廳,並按照喜歡人數進行排序?

問題答案參考:

create (philip:person )-[:is_friend_of]->(emil:person ), (philip)-[:is_friend_of]->(michael:person ), (philip)-[:is_friend_of]->(andreas:person ) create (sushi:cuisine ), (nyc:city ), (isushi:restaurant )-[:serves]->(sushi),(isushi)-[:located_in]->(nyc), (michael)-[:likes]->(isushi), (andreas)-[:likes]->(isushi), (zam:restaurant )-[:serves]->(sushi),(zam)-[:located_in]->(nyc), (andreas)-[:likes]->(zam)

上面一大推拆分成下面的一步步

label: person

建立philip

create (philip:person );

建立emil

create (emil:person );

建立michael

create (michael:person );

建立andreas

create (andreas:person);

label: cuisine

5. 建立sushi

create (sushi:cuisine);

label: city

6. 建立nyc

create (nyc:city );

label: restaurant

7. 建立isushi

create (isushi:restaurant)

8. 建立zam

create (zam:restaurant )

建立關係 // 若關係沒有標籤、where等限制會給所有的節點加上關係

match(a:person),(b:person)

where a.name=「philip」 and b.name=「michael」

create (a)-[:is_friend_of]->(b)

與 emil建立關係 同上

與 michael建立關係 同上

與 andreas建立關係 同上

– 簡略記法,實際這麼寫可不成

create (isushi)-[:serves]->(sushi)

create (zam)-[:serves]->(sushi)

– 之後通過id(n)方法選擇元素

isushi 160 nyc 140 michael 240 andreas 260 zam 180

create (isushi)-[:located_in]->(nyc)

create (zam)-[:located_in]->(nyc)

create (michael)-[:likes]->(isushi)

create (andreas)-[:likes]->(isushi)

create (andreas)-[:likes]->(zam)

match (philip:person),(emil:person)

where philip.name=「philip」 and emil.name=「emil」 – 若無選擇項是否能建立關係,能,但是philip與emil此時代表標籤。會有很多關係建立

create (philip)-[:is_friend_of]->(emil)

(1)match (a:restaurant)-[:located_in]->(b:city) where b.name=「new york」 return a

(2)match (a:person)-[:is_friend_of]->(b:person) where a.name=「philip」 return b

(3)match (a:restaurant)-[:located_in]->(b:city),(c:person)-[:is_friend_of]->(d:person),(d:person)-[:likes]->(a:restaurant) where b.name=「new york」 and c.name=「philip」 return a

參***更整潔

在match中輸入名字替代where條件

return返回多項內容

as內容修改返回列名

通過order by 與 count 函式進行統計和排序

通過id()方法 id(n)=10

Neo4j學習(2) Win系統安裝Neo4j

neo4j 是目前最流行的圖形資料庫,支援完整的事務,在屬性圖中,圖是由頂點 vertex 邊 edge 和屬性 property 組成的,頂點和邊都可以設定屬性,頂點也稱作節點,邊也稱作關係,每個節點和關係都可以由乙個或多個屬性。neo4j建立的圖是用頂點和邊構建乙個有向圖,其查詢語言cypher...

Neo4j檔案說明

neo4j作為資料庫式的nosql工具,檔案儲存也有其獨特方面。neostore neostore.id 儲存版本資訊 neostore.nodestore.db neostore.nodestore.db.id 儲存節點資料與節點序列id neostore.propertystore.db neo...

Neo4j學習筆記

neo4j學習筆記 一.基本知識 1.1 node syntax 節點語法 matrix movie matrix movie matrix movie matrix movie 1 代表乙個節點uncharacterized node 2 matrix 新增了乙個變數為matrix的節點。3 mo...