当前位置:   article > 正文

知识图谱基本工具Neo4j使用笔记 三 :Py2neo 基本增删改查使用

py2neo

每天掌握一点,创建 -->修改–>查询–>删除

一 ,什么是 py2neo

知识图谱基本工具Neo4j使用笔记 一 :入门基本操作 Python操作api

py2neo是一个Python库,用于连接和操作Neo4j图数据库。它提供了一组API,可让用户在Python中轻松地创建查询操纵图形数据

py2neo允许用户使用Python代码创建节点关系,查询图形数据以及执行高级图形算法。它具有直观的API和良好的文档,使得学习和使用该库变得容易。
py2neo的官方文档

二,py2neo具备哪些功能

py2neo在图形数据库方面有着很强的功能。

1. 连接和操作Neo4j数据库:

py2neo允许你连接到Neo4j数据库,并对其中的节点、关系和属性进行操作。

2. 创建和删除节点和关系:

使用py2neo,可以轻松地创建删除更新图形中的节点和关系。

3. 执行查询和过滤:

使用py2neo的Cypher API,可以执行复杂的查询和过滤,以查找节点和关系,并返回所需的结果。

4. 序列化和反序列化:

py2neo提供了一些方便的方法,可以将Graph对象转换为JSONXML格式,并从这些格式中重建图形数据。

5. 集成Flask和Django框架:

py2neo提供了与FlaskDjango框架的集成,使得在这些框架中使用Neo4j数据库变得更加容易。

6. 支持高级图算法:

py2neo支持各种高级图算法,如PageRank最短路径算法社区检测算法等。

三,py2neo的使用方法

基本上就是以下步骤:

  1. 安装py2neo:可以通过pip命令来安装py2neo库。在命令行中输入“pip install py2neo”即可进行安装。

  2. 连接到Neo4j数据库:在Python代码中,首先需要建立与Neo4j数据库的连接。可以使用Graph()函数创建一个Graph对象,并传入连接字符串作为参数。

  3. 创建节点和关系:使用create()merge()函数来创建节点和关系。

  4. 执行查询:使用run()函数执行Cypher查询,并获取返回结果。

  5. 操作数据:使用Node()Relationship()Property()等函数来操作节点、关系和属性。

例如,在Python代码中创建一个名为“person”的节点,代码如下:


from py2neo import Graph, Node

graph = Graph("bolt://localhost:7687", auth=("neo4j", "password"))
person = Node("Person", name="John")
graph.create(person)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

这段代码首先连接到本地Neo4j数据库,然后创建了一个类型为“Person”,名称为“John”的节点,并将其保存到数据库中。

更高级的使用方法包括使用Transaction批量操作等,具体可以参考py2neo的官方文档py2neo的官方文档

四,py2neo增删改查使用例子

py2neo提供了方便的API来进行增删改查等数据库操作。下面是使用py2neo进行增删改查的详细介绍和例子。

1. 增加节点和关系(增)

py2neo允许我们创建节点关系,并将它们添加到图形数据库中。例如,我们可以创建一个名为“Alice”的人物节点并将其添加到数据库中:


from py2neo import Graph, Node

graph = Graph("bolt://localhost:7687", auth=("neo4j", "password"))
person = Node("Person", name="Alice")
graph.create(person)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

此代码首先创建了一个Graph对象连接到本地Neo4j数据库。然后,我们创建了一个类型为“Person”、名称为“Alice”的新节点,并通过create()函数将其保存到数据库中。

除了创建节点,我们还可以创建节点之间的关系。例如,我们可以创建一个名为“friend”的关系,将两个人物节点相连:

from py2neo import Graph, Node, Relationship

graph = Graph("bolt://localhost:7687", auth=("neo4j", "password"))
person1 = Node("Person", name="Alice")
person2 = Node("Person", name="Bob")
relationship = Relationship(person1, "friend", person2)
graph.create(relationship)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

此代码首先创建了两个类型为“Person”、名称分别为“Alice”和“Bob”的节点。然后,我们创建了一个名为“friend”的关系,将这两个节点相连,并通过create()函数将其保存到数据库中。

2. 删除节点和关系(删)

py2neo允许我们通过delete()函数删除节点和关系。例如,我们可以删除名称为“Alice”的人物节点:


from py2neo import Graph, NodeMatcher

graph = Graph("bolt://localhost:7687", auth=("neo4j", "password"))
matcher = NodeMatcher(graph)
person = matcher.match("Person", name="Alice").first()
if person:
    graph.delete(person)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

此代码首先创建了一个NodeMatcher对象,用于匹配类型为“Person”、名称为“Alice”节点。然后,我们使用match()函数获取与该条件匹配的第一个节点,并使用delete()函数将其从数据库中删除。

3. 更新节点和属性(改)

py2neo允许我们更新节点属性。例如,我们可以更新名称为“Alice”的人物节点的姓名:


from py2neo import Graph, NodeMatcher

graph = Graph("bolt://localhost:7687", auth=("neo4j", "password"))
matcher = NodeMatcher(graph)
person = matcher.match("Person", name="Alice").first()
if person:
    person["name"] = "Alice Smith"
    graph.push(person)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

这段代码首先使用NodeMatcher来获取名称为“Alice”的人物节点,并更新其名称为“Alice Smith”。然后,我们使用push()函数将更改保存到数据库中。

4. 查询节点和关系(查)

py2neo允许我们执行复杂的查询操作。例如,我们可以查找所有名为“Bob”的人物节点:


from py2neo import Graph, NodeMatcher

graph = Graph("bolt://localhost:7687", auth=("neo4j", "password"))
matcher = NodeMatcher(graph)
people = matcher.match("Person", name="Bob").first()
for person in people:
    print(person)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

这段代码首先使用NodeMatcher来获取所有名称为“Bob”的人物节点,并将其打印到控制台。

除了NodeMatcher,我们还可以使用Cypher查询语言来执行更复杂的查询操作。例如,我们可以查找与名为“Alice”和“Bob”的人物节点有关系的人物节点:


from py2neo import Graph

graph = Graph("bolt://localhost:7687", auth=("neo4j", "password"))
result = graph.run("MATCH (a:Person)-[]-(b:Person) WHERE a.name='Alice' AND b.name='Bob' RETURN a, b").data()
for record in result:
    print(record["a"], record["b"])
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

这段代码首先使用run()函数执行一条Cypher查询,并返回匹配的结果。然后,我们遍历返回的记录,并打印其中的节点。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/647926
推荐阅读
相关标签
  

闽ICP备14008679号