当前位置: 首页 > news >正文

python连接neo4j的方式汇总

python连接neo4j的方式汇总

  • 1.官方驱动(neo4j)
    • 特点
    • 代码示例
  • 2. 全功能ORM(py2neo)
    • 特点
    • 代码示例
  • 3. 领域驱动设计框架(neomodel-odm)
    • 特点
    • 代码示例
  • 4. 异步高性能驱动(asyncneo4j)
    • 特点
    • 代码示例

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")

相关文章:

  • 使用 Apache POI 实现 Excel 单元格合并
  • 大模型工程师学习日记(十一):FAISS 高效相似度搜索和密集向量聚类的库
  • 探究DeepSeek R1与OpenAI模型文本相似度背后的秘密
  • Ubuntu20.04双系统安装及软件安装(十二):nomachine
  • 用AI学安卓游戏开发1——控制小球上下左右移动2
  • 网络安全的八大机制
  • kaggle竞赛(初识)
  • 74道高级Java面试合集,java开发模式面试题
  • 5、使用 pgAdmin4 图形化创建和管理 PostgreSQL 数据库
  • python:pymunk + pygame 模拟六边形中小球弹跳运动
  • 使用GitLink个人建站服务部署Allure在线测试报告
  • 【Swift 算法实战】存在重复元素 III
  • 第五天 Labview数据记录(5.2 Text文件读写)
  • 鸿蒙5.0实战案例:基于webview拉起自定义键盘
  • VS2015 c++和cmake配置编程
  • Github 2025-03-03 开源项目周报Top14
  • QTableWidget之表格列的隐藏与显示(折叠)
  • C++并发以及多线程的秘密
  • C#—csv文件格式操作
  • stm32移植LCD2002驱动
  • wordpress 不显示顶部/seo是一种利用搜索引擎
  • 网站后台无法访问/怎样创建一个自己的网站
  • html网站开发/地推网推平台
  • python做网站 不适合/今日头条新闻
  • 临河可以做网站的公司/seo的排名机制
  • 青海网站开发 建设/东莞网络营销平台