python使用_py2neo_CRUD(操作图数据库neo4j)

通过py2neo对图数据库neo4j进行增删查改操作:

#!/usr/bin/python3
# -*- coding: utf-8 -*-
"""
通过py2neo进行对图数据库neo4j的CRUD操作
1.节点的操作
2.关系的操作
"""


from py2neo import Graph, Node, Relationship


# Essentioal: 链接neo4j
neo_graph = Graph("http://127.0.0.1:7474/browser/", username="neo4j", password="2288")


# ==============================
# 节点和节点属性操作
# ==============================
# 1. create:新增节点
new_node = Node('汽车车型', name='福克斯(进口) 2019款 旅行版', ModelKey='34242')
neo_graph.create(new_node)

# 2. retrieve:查询节点
# graph.nodes.get(1234)     # 通过neo4j中的自增id获取节点
# match查找节点
neo_graph.nodes.match('汽车车系', name='奥迪A4L').first()

# 3. update:修改节点
# 先match查找,再push()修改
tmp = neo_graph.nodes.match('汽车车系', name='奥迪A4L').first()
tmp['SeriesKey'] = '修改属性值111'
neo_graph.push(tmp)

# 4. delete:删除节点
del_node = neo_graph.nodes.match('CarModel').first()
neo_graph.delete(del_node)


# ==============================
# 关系操作
# ==============================
# 1. create:新增关系
# 节点已经存在情况下新增关系
a = neo_graph.nodes.match('汽车车型', carModelId=145).first()
b = neo_graph.nodes.match('汽车车系', seriesId=19).first()
relat = Relationship(a, '所属车系', b)
relat['Property'] = 'ObjectProperty'
neo_graph.create(relat)
# 节点不存在情况下新增关系
a = Node('汽车车型', name='福克斯(进口) 2019款 旅行版', ModelKey='34242')
b = Node('汽车车系', name='福克斯(进口)', SeriesKey='123')
relat = Relationship(a, '所属车系', b)
relat['Property'] = 'ObjectProperty'
neo_graph.create(relat)

# 2. Retrieve:查询关系/联系
# 多个关系
# 先找到节点,再寻找之间关系
# match(nodes=None, r_type=None, limit=None)[source]
a = neo_graph.nodes.match('People', name='沙瑞金').first()
b = neo_graph.nodes.match('People', name='高玉良').first()   # 将(a, )变为(a,b)之后,查询只会有“沙瑞金-下属-高玉良”一个结果
for i in neo_graph.match((a, ), r_type="下属"):
    print(i)
# 知道节点,查询关系
for i in neo_graph.match((a, b)):
    print('\n', i)
# 单个关系
a = neo_graph.nodes.match('People', name='沙瑞金').first()
neo_graph.match_one((a, ), r_type="下属")

# 3. update:更改关系属性
# 可以是节点属性,修改,添加删除均可,详见:https://www.jianshu.com/p/2bb98c81d8ee
neo_graph.run("match (:汽车车型)-[b]->() set b.Property='ObjectProperty' return b")

# 4. delete:删除关系
neo_graph.run('MATCH (:aaaa)-[b]->() delete b')

 

你可能感兴趣的:(python使用_数据库处理,python,py2neo)