從零開始Py2neo操作Neo4j(二)

2021-10-02 03:33:49 字數 2378 閱讀 2854

利用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...