每天掌握一点,创建 -->修改–>查询–>删除
知识图谱基本工具Neo4j使用笔记 一 :入门基本操作 Python操作api
py2neo
是一个Python库,用于连接和操作Neo4j图数据库。它提供了一组API,可让用户在Python中轻松地创建
、查询
和操纵图形数据
。
py2neo允许用户使用Python
代码创建节点
和关系
,查询图形数据以及执行高级图形算法。它具有直观的API和良好的文档,使得学习和使用该库变得容易。
py2neo的官方文档
py2neo在图形数据库方面有着很强的功能。
py2neo允许你连接到Neo4j数据库
,并对其中的节点、关系和属性进行操作。
使用py2neo,可以轻松地创建
、删除
和更新
图形中的节点和关系。
使用py2neo的Cypher API
,可以执行复杂的查询和过滤,以查找节点和关系,并返回所需的结果。
py2neo提供了一些方便的方法,可以将Graph对象转换为JSON
或XML
格式,并从这些格式中重建图形数据。
py2neo提供了与Flask
和Django
框架的集成,使得在这些框架中使用Neo4j数据库变得更加容易。
py2neo支持各种高级图算法,如PageRank
、最短路径算法
和社区检测算法
等。
基本上就是以下步骤:
安装py2neo
:可以通过pip命令来安装py2neo库。在命令行中输入“pip install py2neo”即可进行安装。
连接到Neo4j数据库
:在Python代码中,首先需要建立与Neo4j数据库的连接。可以使用Graph()
函数创建一个Graph对象
,并传入连接字符串作为参数。
创建节点和关系
:使用create()
或merge()
函数来创建节点和关系。
执行查询
:使用run()
函数执行Cypher查询
,并获取返回结果。
操作数据
:使用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)
这段代码首先连接到本地Neo4j数据库,然后创建了一个类型为“Person”,名称为“John”的节点,并将其保存到数据库中。
更高级的使用方法包括使用Transaction
、批量操作
等,具体可以参考py2neo的官方文档py2neo的官方文档
py2neo提供了方便的API来进行增删改查等数据库操作。下面是使用py2neo进行增删改查
的详细介绍和例子。
py2neo允许我们创建节点
和关系
,并将它们添加到图形数据库中。例如,我们可以创建一个名为“Alice”的人物节点并将其添加到数据库中:
from py2neo import Graph, Node
graph = Graph("bolt://localhost:7687", auth=("neo4j", "password"))
person = Node("Person", name="Alice")
graph.create(person)
此代码首先创建
了一个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)
此代码首先创建了两个类型为“Person”、名称分别为“Alice”和“Bob”的节点。然后,我们创建了一个名为“friend”的关系,将这两个节点相连,并通过create()函数将其保存到数据库中。
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)
此代码首先创建了一个NodeMatcher对象
,用于匹配类型为“Person”、名称为“Alice”节点。然后,我们使用match()函数
获取与该条件匹配的第一个节点,并使用delete()
函数将其从数据库中删除。
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)
这段代码首先使用NodeMatcher
来获取名称为“Alice”的人物节点,并更新其名称为“Alice Smith”。然后,我们使用push()函数
将更改保存到数据库中。
py2neo允许我们执行复杂的查询操作
。例如,我们可以查找所有名为“Bob”的人物节点:
from py2neo import Graph, NodeMatcher
graph = Graph("bolt://localhost:7687", auth=("neo4j", "password"))
matcher = NodeMatcher(graph)
people = matcher.match("Person", name="Bob")
for person in people:
print(person)
这段代码首先使用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")
for record in result:
print(record["a"], record["b"])
这段代码首先使用run()函数
执行一条Cypher查询
,并返回匹配
的结果。然后,我们遍历返回的记录,并打印其中的节点。