赞
踩
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、基本使用教程
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。