從零開始Py2neo操作Neo4j(一)

2021-10-02 03:21:26 字數 2890 閱讀 3171

我這裡是通過pycharm直接建立python3.7環境下的工程,py2neo版本為4.3,正常執行

建立python檔案import py2neo,並連線資料庫

;建立node節點

a = node(

'person'

, name=

'宋老三'

)b = node(

'person'

, name=

'王老二'

)r = relationship(a,

'love'

, b)

#亦可以傳入subgraph r = a | b | r 效果相同

graph.create(r)

建立結果

我姑且將node和relation看作一種特殊的dict形式

node:節點的實體物件

#設定key鍵對應的value,如果value是none就移除這個property

a['age']=

20b[

'age']=

22r[

'time']=

'2020-01-01'

#獲取key對應的property

x=a[

'age'

]#返回所以和這個節點有關的label

labels=a.labels

#返回node裡面property的個數

z=len

(a)#刪除某個property

del r[

'time'

]#刪除某個label

a.labels.remove(

'person'

)#將node的所有property以dictionary的形式返回

dict

(a)

relation:兩者關係的實體物件

#建立relationship

relationship`(

*start_node*,*

type*,

*end_node*,**

*properties*

)#返回relationship的property

relationship[key]

#刪除某個property

del relationship[key]

#將relationship的所有property以dictionary的形式返回

dict

(relationship)

備註:dict的update與setdefault等方法均可使用

subgraph:子圖,顧名思義,neo4j是一張完整的圖,從中取出的一部分node與relation的集合便稱作子圖,我姑且理解為mysql中的檢視,無法改變它們的屬性,看作一種視角

#構建方法

s = a | b | r #或理解為加到一起,可用於構建子圖

s = a & b & r #同上理解,取交集

s = a - b #去除相同關係,保留不同關係

print

(s)print

(s.nodes())

#子圖所有節點

print

(s.relationships())

#子圖所有關係

print

(s.keys())

#子圖所有key

print

(s.labels())

#子圖所有標籤 我姑且理解為node的類

print

(s.types())

#子圖所有型別 我姑且理解為relation的name

print

(order(s)

)#子圖節點數

print

(size(s)

)#子圖關係數

注:markdown真好用 tab整體縮排,shift+tab整體退格

walkable:沒啥可說,可以遍歷的子圖,構建上比子圖多了開始節點和終止節點

from py2neo import walk

#構建walkable

ab = relationship(a,

"love"

, b)

ac = relationship(a,

"love"

, c)

w = ab + relationship(b,

"likes"

, c)

+ ac

print

(w)#遍歷walkable

for item in walk(w)

:print

(item)

#walkable方法

print

(w.start_node())

#開始節點

print

(w.end_node())

#結束節點

print

(w.nodes())

#所有節點

print

(w.relationships())

#所有關係

有點累了,先去吃飯,回頭再繼續碼 ( ̄▽ ̄)"

從零開始Py2neo操作Neo4j(二)

利用data函式構造cql語句查詢 from pandas import dataframe data graph.data match p person return p 如果版本超過4.1,使用graph.run cypher 查詢語句 data 返回為list型 另外可以寫成 data gra...

py2neo 建立關係 py2neo詳細介紹第一章

1.1 節點和關係的物件 官網的例子,建立兩個節點,並為兩個節點建立關係。from py2neo.data import node,relationship a node person name alice b node person name bob ab relationship a,knows...

py2neo基礎學習

neo4j雖然有cql,但是py2neo對cql有一定的封裝,支援一些簡單的操作。學習連線 coding utf8 from py2neo import graph,node,relationship def find relationship start node,end node,test gr...