Python连接Neo4j数据库(通过官方依赖包)

从官方API Documentation搬运、翻译了一些最常用的内容

原文连接:API Documentation — Neo4j Python Driver 5.9

-------------------------------------------------以下开始--------------------------------------------------------------------

目录

查询数据库(driver.execute_query):

Cypher clause:

常用方法(都是driver.调用):

driver.execute_query(query, paras, database):

session(**config):

close():关闭池中所有连接

verify_connectivity(**config):验证驱动是否可以建立到server的连接

get_server_info(**config):获取关于连接到的Neo4j server的相关信息

verify_authentication(auth=None, **config):检查认证信息是否合法。

supports_session_auth():检查远程服务器是否支持连接重认证。


连接数据库(driver = GraphDatabse.driver(URI, AUTH)):

from neo4j import GraphDatabase

# URI examples: "neo4j://localhost", "neo4j+s://xxx.databases.neo4j.io"
URI = ""
AUTH = ("", "")

with GraphDatabase.driver(URI, auth=AUTH) as driver: 
    driver.verify_connectivity() 
Driver对象仅在首次执行Cypher时才创建连接+池化,若要手动检测是否连接,使用verify_connectivity()

查询数据库(driver.execute_query):

Driver.execute_query()		# 执行查询

summary = driver.execute_query(
    "MERGE (:Person {name: $name})",  # 1.Cypher语句
    name="Alice",  					  # 2.查询参数
    database_="neo4j",  			  # 3.指定在哪个库执行
).summary		# summary对象返回Cypher执行的相关信息
print("Created {nodes_created} nodes in {time} ms.".format(
    nodes_created=summary.counters.nodes_created,	# 创建节点数目
    time=summary.result_available_after				# 创建节点花费时间
))

Note:CREATE是新增、MERGE是匹配现有的;MERGE可以匹配现有的。

Cypher clause:

  • 新增
    • CREATE(: Concept {name : '约翰' , enName : 'John'})
    • MERGE ( : Concept {name : '约翰' , enName : 'John'})
  • 删除
    • MATCH (n) WHERE ID(n) = {node_id} DELETE n 【按删除,条件可改】
  • 修改
    • MATCH (n) WHERE ID(n) = {node_id} SET n.name='newName'
  • 查询
    • MATCH (n) WHERE ID(n) = {node_id} RETURN n 【按条件查询,条件可改】

常用方法(都是driver.调用):

driver.execute_query(query, paras, database):

  • 入参(1,2,4是常用的)
    • query:要执行的cypher语句
    • parameters: 在执行时使用的语句
    • routing:是否将查询route到集群中的reader/writer。 【reader(follower/read replica)/writer】database:选择要在哪个db执行语句。【推荐手动指定,否则会先解析默认数据库】
    • impersonated_user:要模拟的用户名称。【模拟用户的安全上下文】
    • auth:身份验证信息。【默认使用driver config里的】
    • result_transformer:将neo4j.Result转化为不同类型【neo4j.Result -> record, summary, keys】
    • bookmark_manager:指定书签管理器。【默认为driver的execute_query_bookmark_manager】
    • kwargs:其他可选参数。
  • 返回值
    • records:查询结果返回(可遍历)
    • summary:Cypyher语句执行信息

session(**config

  • 入参
    • session配置文件(k-v)
  • 返回值
    • neo4j.Session对象(Session类型)

close():关闭池中所有连接

  • 入参:
    • None
  • 返回值:
    • None

verify_connectivity(**config):验证驱动是否可以建立到server的连接

  • 入参:
    • config(与session相同)
  • Raise:
    • Exception:如果driver无法与remote建立连接,抛出异常获悉具体原因
  • 返回值:
    • None

get_server_info(**config):获取关于连接到的Neo4j server的相关信息

尝试建立连接并交换一些数据,以此来获取返回信息。若此方法引发异常,仍需要close()关闭驱动、释放资源。

  • 入参:
    • config(与session相同)
  • Raise:
    • 同上
  • 返回值:
    • ServerInfo API Documentation — Neo4j Python Driver 5.9

verify_authentication(auth=None, **config):检查认证信息是否合法。

类似于verify_connectivity(),但是为了检验authentication的。

  • 入参:
    • auth
    • config
  • Raises:
    • 同上
  • Return(bool类型):
    • true合法;false不合法

supports_session_auth():检查远程服务器是否支持连接重认证。

  • 返回值(bool类型):
    • true支持;false不支持

你可能感兴趣的:(neo4j,数据库,python,知识图谱)