py2neo学习

本文详细介绍了如何使用Python库py2neo进行Neo4j数据库的高效操作,包括GraphService对象、Graph和Transaction的使用,以及图的创建、删除、查询和节点匹配等核心内容。
摘要由CSDN通过智能技术生成

py2neo学习

这篇文章是我在使用python操作neo4j时总结的参考文档,主要的参考文献是py2neo的手册

GraphService

GraphService 包含一个或多个Graph主要发生数据存储和检索活动的对象。

from py2neo import GraphService
gs = GraphService("localhost:7474", name='name', auth=('user_name''pwd'))

name是数据库中的数据库名
GraphService常见的方法:

  • iter(graph_service) 迭代 得到所有数据库名
  • gs[name] 按照name访问name graph
  • gs.config 查找neo4j的参数配置
  • gs.default_graph 返回默认的图
  • gs.kernel_version:返回Neo4j的版本
  • gs.system_graph:此图数据库服务公开的图数据库。返回类型:SystemGraph
  • uri:此GraphService连接到的URI

Graph

graph.run()     # 用于通用查询执行,向服务器发送一个 Cypher 查询以执行并返回一个Cursor用于导航其结果。
graph.evaluate()  # 检索单个聚合值,执行单个Cypher查询并从第一条记录的第一列返回值。
graph.update()  # 执行没有返回值的 Cypher,执行单个 Cypher 语句并丢弃任何返回的结果。

Transaction

tx = graph.auto(readonly=False)   # 创建一个新的自动提交Transaction readonly是否只读 默认值为False
tx = graph.begin(readonly=False)  # 开始新的Transaction
commit(tx)  # 提交事务 

图操作

create(subgraph)  # 创建子图,subgraph可以是一个Node,Relationship或其他Subgraph
delete(subgraph)  # 删除子图,subgraph可以是一个Node,Relationship或其他Subgraph
separate(separate)   # 仅删除关系, 只有通过graph和identity属性绑定到相应远程关系的关系才会触发删除。
delete_all()  # 删除所有的节点和边,永久删除所有节点和关系,并且无法撤消。
exists(subgraph)  # 是否存在子图
match(nodes=None, r_type=None, limit=None)  # nodes表示开始和结束节点的序列或集合(None意味着任何节点)集合表示在任何方向上匹配
# r_type – 要匹配的关系类型(None表示任何类型) limit要匹配的最大关系数(None意味着无限制)
match_one(nodes=None, r_type=None)  # 匹配并返回一个具有特定条件的关系
merge()  # 在自动提交中运行操作Transaction
pull(subgraph)  # 将数据从远程对应实体拉到一个或多个实体。
push(subgraph)  # 将数据从一个或多个实体推送到其远程对应方。

节点匹配(关系匹配与节点反馈类似)

from py2neo import Graph
from py2neo.matching import *
g = Graph()
'''  Nodematcher对象   '''
nodes = NodeMatcher(g)
matcher = nodes.match(...)
iter(matcher)  # 遍历匹配项,依次产生每个匹配项的节点ID
len(matcher)  # 计算匹配的节点并返回匹配的数量
node_id in matcher  # 确定给定的节点 ID 是否存在
matcher[node_id]  # 通过 ID 匹配并返回特定节点。KeyError如果找不到这样的节点,则会引发一个。
'''  Nodematch对象   '''
iter(match) # 遍历所有匹配的节点。
len(match)  # 返回匹配的节点数。
all()  # 评估选择并返回所有匹配Node对象的列表
count()  # 评估选择并返回匹配数的计数
exists()  # True如果至少存在一个匹配的节点,则评估选择并返回。
first()  # 评估匹配并返回第一个Node匹配的或者None如果没有找到匹配的节点。
limit(amount)
order_by(*fields)  # 按指定的字段或字段表达式排序。
skip(amount)  # 跳过匹配的结果的前amount个结果
where()  # 优化此匹配以创建新匹配

谓词

ends_with('str')  # 以str为后缀的字符串
contains('str')  # 包含str的字符串
like('正则表达式')  # 匹配正则表达式的字符串
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值