python连接neo4j的方式汇总

python连接neo4j的方式汇总

1.官方驱动(neo4j)

特点

  • 官方维护,支持Neo4j 5.x所有新特性(如分片集群、时序图)
  • 提供同步/异步API,兼容asyncio和Reactive Streams
  • 与APOC插件深度集成,支持存储过程调用

代码示例

复制代码
from neo4j import GraphDatabase 

driver = GraphDatabase.driver("bolt://localhost:7687",  auth=("neo4j", "password"))
with driver.session()  as session:
    result = session.run("MATCH  (n:User) RETURN n.name  LIMIT 10")
    print([record["n.name"]  for record in result])

# 关闭驱动
driver.close()

2. 全功能ORM(py2neo)

特点

  • 支持节点/关系对象化操作,内置子图事务管理
  • 集成GIS空间数据处理(WKT格式与Neo4j Spatial插件兼容)
  • 提供GraphQL转换工具,一键生成API端点

代码示例

复制代码
from py2neo import Graph, Node 

graph = Graph("bolt://localhost:7687", auth=("neo4j", "password"))
user = Node("User", name="Alice", age=30)
graph.create(user)   # 自动提交事务 

3. 领域驱动设计框架(neomodel-odm)

特点

  • 类Django的声明式模型定义,支持DDD模式(聚合根、值对象)
  • 自动生成数据库迁移脚本,兼容CI/CD流水线
  • 内置事件溯源(Event Sourcing)和CQRS模式支持

代码示例

复制代码
from neomodel_odm import StructuredNode, StringProperty 

class Product(StructuredNode):
    sku = StringProperty(unique_index=True)
    name = StringProperty(required=True)

# 自动创建唯一约束并持久化 
Product(sku="P-2025", name="Quantum Laptop").save()

4. 异步高性能驱动(asyncneo4j)

特点

  • 专为微服务设计,支持万级并发连接
  • 内置连接池自动扩缩容与故障转移机制
  • 优化Bolt协议二进制编码,降低网络开销30%

代码示例

复制代码
from asyncneo4j import Neo4jClient 

client = Neo4jClient("bolt://cluster-node:7687", pool_size=20)
async with client.transaction()  as tx:
    await tx.execute("CREATE  (:Log {level: $level})", level="INFO")
相关推荐
问天_观心6 小时前
大模型微调学习(二)
人工智能·python·深度学习·学习·语言模型·transformer
洋洋不叫杨杨6 小时前
揭秘当下知名的SEO优化渠道,你知道几个?
大数据·python
阿童木写作6 小时前
跨境图片翻译工具推荐:批量处理视频字幕与智能抠图
python·音视频
梦想的颜色6 小时前
OCR 识别原理与 Python 识图全实战:从文字提取到图像内容理解
python·计算机视觉·ocr·图像识别·python 识图
禹凕6 小时前
Dijkstra算法详解与应用
python·算法
别走!万哥爱你7 小时前
Python 中可以用于在已排序的列表中查找特定元素的位置的是什么?
python
Mr.朱鹏7 小时前
Linux 服务器 LVM 根分区在线动态扩容
linux·服务器·数据库
摇滚侠7 小时前
《SpringBoot 3:入门与应用实战》第 12 章 JDBC 与事务 数据库初始化机制 阅读笔记 36
数据库·spring boot·笔记
qiuhaipeng17 小时前
Claude code 升级后上下文长度变短问题
java·前端·数据库
wxwx_bscxy3228 小时前
基于Python新冠疫情可视化分析系统的设计与实现
java·数据库·spring boot·python·微信小程序·sqlite