📜  Neo4j CQL-建立关系(1)

📅  最后修改于: 2023-12-03 15:33:05.742000             🧑  作者: Mango

Neo4j CQL-建立关系

Neo4j 是一个高性能、面向对象的图形数据库。它使用标记语言的节点、关系或边缘来存储和操作数据。在 Neo4j 中,CQL(Cypher Query Language)是一种用于查询和操作数据的 SQL(Structured Query Language)类似的语言。

在本文中,我们将介绍如何在 Neo4j 中使用 CQL 建立关系。

连接到 Neo4j 数据库

在使用 CQL 建立关系之前,我们需要先连接到 Neo4j 数据库。这可以通过 Neo4j 官方驱动程序完成。下面是一个 Python 代码片段,用于连接到本地运行的 Neo4j 数据库:

from neo4j import GraphDatabase, basic_auth

uri = "bolt://localhost:7687"
userName = "neo4j"
password = "password"

driver = GraphDatabase.driver(uri, auth=basic_auth(userName, password))
session = driver.session()
创建节点

在创建关系之前,我们需要先创建两个节点。下面是一个使用 CQL 在 Neo4j 中创建一个名为“John”的人物节点的 Python 代码片段:

query_create_person = "CREATE (p:Person {name: $name})"
session.run(query_create_person, name="John")

这个代码片段创建了一个类型为“Person”的节点,然后将“name”属性设置为“John”。

查询节点

在创建节点之后,我们可以使用 CQL 查询节点。下面是一个返回名为“John”的人物节点的 Python 代码片段:

query_find_person = "MATCH (p:Person {name: $name}) RETURN p"
result = session.run(query_find_person, name="John")
建立关系

现在,我们可以使用 CQL 在两个节点之间建立关系。下面是一个将名为“John”的人物节点与名为“Jane”的人物节点之间建立关系的 Python 代码片段:

query_create_relationship = """
MATCH (p1:Person {name: $name1})
MATCH (p2:Person {name: $name2})
CREATE (p1)-[r:KNOWS]->(p2)
"""
session.run(query_create_relationship, name1="John", name2="Jane")

这个代码片段使用 MATCH 语句找到名为“John”和“Jane”的节点,然后使用 CREATE 语句在它们之间创建了一种类型为“KNOWS”的关系。

查询关系

在建立关系之后,我们可以使用 CQL 查询关系。下面是一个返回两个人物之间存在的所有关系的 Python 代码片段:

query_find_relationship = """
MATCH (p1:Person {name: $name1})-[r]->(p2:Person {name: $name2})
RETURN r
"""
result = session.run(query_find_relationship, name1="John", name2="Jane")

这个代码片段使用 MATCH 语句找到名为“John”和“Jane”的节点之间的所有关系。然后,我们将关系返回给变量 result。

关闭会话和驱动程序

最后,我们需要关闭 CQL 会话和驱动程序。下面是一个 Python 代码片段,用于关闭会话和驱动程序:

session.close()
driver.close()
总结

在本文中,我们介绍了如何使用 CQL 在 Neo4j 中建立节点和关系。我们展示了如何连接到数据库、创建节点和关系、查询节点和关系,并且在结束时关闭会话和驱动程序。Neo4j 的 CQL 语言具有高度的灵活性和表现力,可以用于处理各种图形数据库的任务。