我這裡是通過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...