Neo4j(六)——python操作neo4j(py2neo使用)

py2neo

1、安装py2neo

pip install py2neo

安装的时候踩坑了 

2、笔记整理

(1)安装py2neo。一个可以通过python处理Neo4j的库。

(2)连接数据库

test_graph=Graph("http://localhost:7474",username="neo4j",password="neo4j")

(3)建立节点

用到py2neo.Node

test_node_1 = Node(label = "Person",name = "test_node_1")

test_graph.create(test_node_1)

name为test_node_1的属性。

(4)建立节点之间关系

Neo4j中节点关系是有向的,所以建立关系时需要建立起始节点和结束节点。

node_1_call_node_2 = Relationship(test_node_1,'CALL',test_node_2)

node_1_call_node_2['count'] = 1

test_graph.create(node_1_call_node_2)

其中node_1_call_node_2表示建立的关系,关系类型为“CALL”,node_1_call_node_2['count']表示关系属性count,其值为1

上述所建立关系为单向关系。

(5)关系属性赋值、更新属性值

node_1_call_node_2['count']+=1

test_graph.push(node_1_call_node_2)

这个操作更新了node_1_call_node_2的count属性,并将其属性值+1后更新到数据库中。

(6)通过属性值查找节点和关系 find_one

find_code_1 = test_graph.find_one (label="Person", property_key="name", property_value="test_node_1")

print find_code_1['name']

(7)通过节点和关系查找关联的节点和关系 match

find_relationship=test_graph.match_one(start_node=find_code_1,end_node=find_code_3, bidirectional=False)

print find_relationship

注:match和match_one的参数包括start_node,Relationship,end_node中的至少一个。bidirectional参数的意义是指关系是否可以双向。
如果为False,则起始节点必须为start_node,结束节点必须为end_node。如果有Relationship参数,则一定按照Relationship对应的方向。
如果为True,则不需要关心方向问题,会把两个方向的数据都返回。

3、 实例

#coding:utf-8

from py2neo import *

#连接数据库,输入地址,用户名,密码
url = 'http://127.0.0.1:7474/'
graph = Graph(url, username='neo4j', password='neo4j')

##创建结点
test_node_1 = Node(label='ru_yi_zhuan', name='皇帝')
test_node_2 = Node(label='ru_yi_zhuan', name='皇后')
test_node_3 = Node(label='ru_yi_zhuan', name='公主')
graph.create(test_node_1)
graph.create(test_node_2)
graph.create(test_node_3)

##创建关系
# 分别建立了test_node_1指向test_node_2和test_node_2指向test_node_1两条关系,关系的类型为"丈夫、妻子",两条关系都有属性count,且值为1。
node_1_zhangfu_node_1 = Relationship(test_node_1, '丈夫', test_node_2)
node_1_zhangfu_node_1['count'] = 1
node_2_qizi_node_1 = Relationship(test_node_2, '妻子', test_node_1)
node_2_munv_node_1 = Relationship(test_node_2, '母女', test_node_3)

node_2_qizi_node_1['count'] = 1

graph.create(node_1_zhangfu_node_1)
graph.create(node_2_qizi_node_1)
graph.create(node_2_munv_node_1)

print(graph)
print(test_node_1)
print(test_node_2)
print(node_1_zhangfu_node_1)
print(node_2_qizi_node_1)

3、基本使用教程

https://blog.csdn.net/jian_qiao/article/details/100557985

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值