python操作neo4j图数据库的基本方法

本文介绍使用Py2Neo库在Python中操作图数据库的方法,包括节点和关系的创建、查询、修改和删除,以及属性和标签的管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在做图数据库的相关工作,python有自己的第三方库可以很方便与图数据库进行交互 -- py2neo

一,节点

1,创建节点和关系
>>> from py2neo import Node, Relationship
>>> a = Node("Person", name="Alice")
>>> b = Node("Person", name="Bob")
>>> ab = Relationship(a,"KNOWS",b)
>>> ab
(Alice)-[:KNOWS {}]->(Bob)

2,可以直接判断两个节点是否相等(判断两个节点是否相等实际上判断的是节点的ID是否相同,与其属性无关)
>>> a==b
False
>>> a==a
True
>>> a != b
True

3,hash(Node) 如果节点没有绑定,那么返回节点对象ID的哈希值,如果绑定,返回节点所代表的远程的ID
>>> hash(a)
2825876901824

4,查询节点属性的值 Node[key]  如果键存在那么返回对应值,如果不存在,返回None
>>> a["name"]
'Alice'

5, 设置节点属性的值 Node[key]=value
>>> a["name"] = "Ai"
>>> a["name"]
'Ai'

6,删除节点属性 del Node[key]
>>> del a["name"]
>>> a
(:Person {})

7,查询节点包含属性的个数 len(Node)
由于上面刚刚删除了a节点的属性,先添加一个
>>> a["name"] ="Alice"
>>> a["name"]
'Alice'
>>> len(a)
1

8,将节点的所有属性输出为字典 dict(Node)
>>> dict(a)
{'name': 'Alice', 'age': 12}
>>> dict(b)
{'name': 'Bob'}

9.查询节点的所有标签 Node.labels
>>> a.labels
:Person

10.判断节点是否拥有某个标签 Node.has_label()
>>> a.has_label("Person")
True
>>> a.has_label("")
False

11.节点增加标签 Node.add_label()
>>> a.add_label("China")
>>> a.labels
:China:Person

12. 节点删除标签 Node.remove_label()  如果删除的节点不存在,报错
>>> a.remove_label("China")
>>> a.labels
:Person

13. 节点删除所有标签 Node.clear_labels()
>>> a.clear_labels()
>>> a.labels

14. 将要增加的标签拆分然后给节点添加上
>>> a.update_labels("zh")
>>> a.labels
:China:h:z

二.关系

关系拥有的操作方法和节点节本上一样
1,给关系增加属性 Relationship[key] = value
>>> ab["name"] = "has"
>>> ab
()-[:KNOWS {name: 'has'}]->(Bob)

2. 根据关系的属性名称查询关系的属性值 Relationship[key]
>>> ab["name"]
'has'

3.删除关系的属性 del Relationship[key]
>>> del ab["name"]
>>> ab
()-[:KNOWS {}]->(Bob)

4. 将关系的所有属性以字典形式展示出来 dict(Relationship)
>>> dict(ab)
{}
因为我这里已经将属性删除,所以返回空字典

5. 查询关系的类型 type(Relationship)
>>> type(ab)
<class 'py2neo.data.KNOWS'>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值