利用data函式構造cql語句查詢
from pandas import dataframe
data = graph.data(
'match (p:person) return p'
)#如果版本超過4.1,使用graph.run(cypher="查詢語句").data() 返回為list型
#另外可以寫成:data = graph.run('match (p:person) return p')
print
(list
(data)
)print
(data)
df = dataframe(data)
print
(df)
#可格式化為dataframe格式
nodematcher匹配器查詢(v4以前為nodeselector,並且v4刪除了find函式)
from py2neo import nodematcher
matcher = nodematcher(graph)
matcher.match(
"person"
, name=
"宋老三"
).first(
)#where(),first(),order_by() 返回為match型別,可強制轉換為list
# where裡面使用_指向當前node
list
(matcher.match(
"person"
).where(
"_.name =~ '宋.*'"))
#可以用正則
graph.match(nodes=
none
, r_type=
none
, limit=
none
)#特殊的找到所有的relationships
更新單個節點
matcher.match(
"person"
).first(
)node[
'age']=
21graph.push(node)
更新多個節點
# 找到你要找的nodes
tx = graph.begin(
)matcher = nodematcher(graph)
nodes = matcher.match(
"user"
)# 將返回的「match」類轉成list
new_nodes =
list
(nodes)
## 新增你要修改的東西
for node in new_nodes:
node[
'age'
]= node[
'age']+
1# 裡面是node的list可以作為subgraph的引數
sub = subgraph(nodes=new_nodes)
# 呼叫push更新
tx.push(sub)
tx.commit(
)
node = graph.find_one(label=
'person'
)relationship = graph.match_one(rel_type=
'love'
)graph.delete(relationship)
graph.delete(node)
注:在刪除 node 時必須先刪除其對應的 relationship,否則無法刪除 node
大量頻繁操作可以使用事務和原生操作
tx = graph.begin(
)nodes=
for line in linelists:
onenode = node().
....
...#這裡的迴圈,一般是把檔案的資料存入node中
nodes=neo.subgraph(nodes)
tx.create(nodes)
tx.commit(
)#假定我們已經把兩種node存進去了,label分別是post和user,現在需要在他們間建立某關係
graph.run("match (p:post)
,(u:user) \
where p.owneruserid = u.id \
create (u)-[
:own]
->
(p)")
基礎增刪改查和sql很像,配合文件模擬來記憶更快cql文件:
neo4j官方文件:
從零開始Py2neo操作Neo4j(一)
我這裡是通過pycharm直接建立python3.7環境下的工程,py2neo版本為4.3,正常執行 建立python檔案import py2neo,並連線資料庫 建立node節點a node person name 宋老三 b node person name 王老二 r relationship...
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...