python 与 neo4j 交互(py2neo 使用)
from py2neo import Graph, Node, Relationship
# 连接到Neo4j数据库
graph = Graph("http://localhost:7474", username="neo4j", password="neo4j")
# 创建一个人物节点
person_node = Node("Person", name="John Doe")
# 创建一个电影节点
movie_node = Node("Movie", title="Heat")
# 创建人物和电影之间的演员关系
actor_rel = Relationship(person_node, "ACTED_IN", movie_node)
# 创建人物和导演关系
director_rel = Relationship(person_node, "DIRECTED", movie_node)
# 创建一个角色节点
role_node = Node("Role", name="Robert Parr")
# 创建人物与角色的关系,并添加额外信息
actor_role_rel = Relationship(person_node, "ACTED_IN", movie_node, roles=[role_node])
# 将节点和关系批量创建到图数据库中
graph.create(actor_rel, director_rel, actor_role_rel)
# 查询电影和相应的角色信息
query = """
MATCH (m:Movie)<-[r:ACTED_IN]-()-[r2:ACTED_IN{roles:[]}]->(role:Role)
WHERE m.title = 'Heat'
RETURN r2.roles
"""
# 执行查询
results = graph.run(query).data()
# 打印查询结果
for record in results:
for role in record[0]:
print(role["name"])
这段代码展示了如何使用py2neo库来与Neo4j数据库进行交互。首先,我们连接到本地Neo4j实例。然后,我们创建了一个人物节点和一个电影节点,并创建了它们之间的关系,包括演员关系和导演关系。我们还创建了一个角色节点,并展示了如何在创建人物与角色关系时添加额外信息。最后,我们使用Cypher查询来查询特定电影的角色信息,并打印结果。
评论已关闭