中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

Python中(zhong)操作Neo4j圖(tu)數據庫(ku)

 

 驅(qu)動(dong)導入

       要在Python中連接和操作Neo4j數據庫,我們可以使用py2neo用于連接和操作Neo4j圖數據庫的高級客戶端庫。
        它提(ti)供了面向對象的接口,使得Python程(cheng)序員能夠方便地與 Neo4j 數據庫(ku)進(jin)行交互。

執行步驟

     1、創建節點與關系(Relationship)
     2、執行 Cypher 查詢
     3、圖數據建模
     4、數據導入(ru)導出等操作

安裝py2neo

pip install py2neo

安裝Neo4j數據庫

     需要有一個正在運行的 Neo4j 數據庫,可以本地安裝,也可以連接遠程服務器(例如)。

連接Neo4j

from py2neo import Graph
# 本地默認配置(bolt://localhost:7687)
graph = Graph("bolt://localhost:7687", auth=("neo4j", "your_password"))

創建節點(Node)和關系(Relationship)

from py2neo import Node, Relationship

# 創建節點
zs= Node("Person", name="張三")
ls = Node("Person", name="李四")

# 創建關系
knows = Relationship(zs, "knows", ls)

# 將節點和關系(xi)寫(xie)入數據(ju)庫
graph.create(zs | ls | knows)

執行 Cypher 查詢

# 查詢所有 Person 節點
results = graph.run("MATCH (p:Person) RETURN p.name").data()

for result in results:
    print(result["p.name"])

# .run(query):執行任意 Cypher 查詢
# .data():將查(cha)詢結果(guo)以字典形式返回

使用 NodeMatcher 查找節點

matcher = NodeMatcher(graph)
# 查找標簽為 Person 且 name 為 Alice 的節點
zs = matcher.match("Person", name="張三").first()
print(zs)

# .match(label, **屬性):匹配標簽和屬性
# .first():返回(hui)第一個匹(pi)配項

更新節點屬性

matcher = NodeMatcher(graph)
# 查找標簽為 Person 且 name 為 Alice 的節點
zs = matcher.match("Person", name="張三").first()
zs["age"] = 30
graph.push(zs)  # 將(jiang)更改推送到數據庫

刪除節點和關系

matcher = NodeMatcher(graph)
# 查找標簽為 Person 且 name 為 Alice 的節點
zs = matcher.match("Person", name="張三").first()

graph.delete(zs)
#graph.delete_all() 刪(shan)除所有內(nei)容(慎用)
graph.delete_all()

創建圖模型

from py2neo.ogm import GraphObject, Property

class Person(GraphObject):
    __primarykey__ = "name"

    name = Property()
    age = Property()

完成例子代碼:

from py2neo import  Graph, Node, Relationship, NodeMatcher
# 本地默認配置(bolt://localhost:7687)
graph = Graph("bolt://192.168.219.128:7687", auth=("neo4j", "test@123456"))

# 創建節點
zs= Node("Person", name="張三")
ls = Node("Person", name="李四")

# 創建關系
knows = Relationship(zs, "knows", ls)

#將節點和關系寫入數據庫
graph.create(zs | ls | knows)

matcher = NodeMatcher(graph)
# 查找標簽為 Person 且 name 為 Alice 的節點
zs = matcher.match("Person", name="張三").first()
zs["age"] = 30
graph.push(zs)  # 將更改推送到數據庫

# 查找標簽為 Person 且 name 為 Alice 的節點
zs = matcher.match("Person", name="張三").first()


print("=======執行完成=============")

常用類和方法簡表

類 / 方法 說明
Graph() 連接數據庫
Node() 創建節點
Relationship() 創建關系
graph.create() 向數據庫寫入節點/關系
graph.run() 執行 Cypher 查詢
NodeMatcher() 查找節點
graph.delete() 刪除節點或關系
graph.push() 更新節點/關系屬性
graph.pull() 拉取數據庫中最新屬性

py2neo適用場景

1、圖數據庫建模:社交網絡、知識圖譜、推薦系統
2、復雜關系查詢:比如“某人認識誰的朋友”
3、Cypher 腳本管理和自動化操作
4、與(yu)機器學習/NLP 集成使(shi)用(yong)圖(tu)結構建模數據

與其他Neo4j-Python驅動對比

驅動特點
py2neo 高級封裝,易于上手,面向對象
neo4j(官方驅動) 底層操作,性能好但略繁瑣
neomodel Django 風格 ORM,適合模型驅動開發

操作小結

功能 方法
連接數據庫 Graph(...)
創建節點 Node(...)
創建關系 Relationship(...)
插入數據 graph.create()
查找節點 NodeMatcher(graph).match()
執行查詢 graph.run()
更新屬性 graph.push()
刪除節點關系 graph.delete()
清空數據庫 graph.delete_all()

       特別說(shuo)明:py2neo是一個功能強大、語法友好、支持對象建模(mo)的 Neo4j Python 庫(ku),特別適合構建圖(tu)數據(ju)庫(ku)應用和(he)做(zuo)圖(tu)結(jie)構數據(ju)的快(kuai)速原(yuan)型開發。

?

posted @ 2025-05-07 12:29  Angelasp  閱讀(863)  評論(0)    收藏  舉報