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('正则表达式') # 匹配正则表达式的字符串