Bolt

Bolt 过程允许通过 Bolt 协议访问其他数据库。

限定名称 类型 版本

apoc.bolt.execute

apoc.bolt.execute(url-or-key, kernelTransaction, params, config) - 通过 Bolt 访问其他数据库进行读写操作

过程

Apoc Extended

apoc.bolt.load

apoc.bolt.load(url-or-key, kernelTransaction, params, config) - 通过 Bolt 访问其他数据库进行读取操作

过程

Apoc Extended

apoc.bolt.load.fromLocal

过程

Apoc Extended

urlOrKey 参数允许用户决定是通过 APOC 直接发送 URL,还是将其放入 apoc.conf 文件中。

  • apoc:在 apoc 的相应位置写入完整 URL。

call apoc.bolt.load("bolt://user:password@localhost:7687","match(p:Person {name: $name}) return p", {name:'Michael'})
  • apoc.conf:这里有两种选择

1) 完整 URL:使用参数 apoc.bolt.url 写入完整 URL;

apoc
call apoc.bolt.load("","match(p:Person {name: $name}) return p", {name:'Michael'})
neo4jConf
//simple url
apoc.bolt.url=bolt://user:password@localhost:7687

2) 通过键值:设置一个带有个人键值 apoc.bolt.yourKey.url 的 URL;在这种情况下,用户需要在 apoc 的 url 参数中输入该键值。

apoc
call apoc.bolt.load("test","match(p:Person {name: $name}) return p", {name:'Michael'})
neo4jConf
//with key
apoc.bolt.test.url=bolt://user:password@localhost:7687
apoc.bolt.production.url=bolt://password:test@localhost:7688

可用的配置如下

  • statistics:可选值为 true/false,默认值为 false。此配置将打印执行统计信息;

  • virtual:可选值为 true/false,默认值为 false。此配置以虚拟格式而非映射(map)格式返回结果。注意:如果 withRelationshipNodeProperties=false,则 VirtualRelationship 仅包含由边连接的节点的 ID。

  • readOnly:可选值为 true/false,默认值为 true。定义在远程实例上执行的操作。

  • withRelationshipNodeProperties:可选值为 true/false,默认值为 false。如果 virtual=true,它会返回 VirtualRelationship,其中包含的节点同时也附加了属性。

  • databaseName:远程 Neo4j 实例上的数据库实例名称。默认值为 'neo4j'。若要通过不支持数据库名称的协议连接(针对 4.x 之前的 Neo4j),请设置为 null

此外,apoc.bolt.load.fromLocal 可以具有:* streamStatements:如果为 true 且与 Cypher 导出过程结合使用,它将把语句从本地流式传输到远程数据库。* readOnly:默认值为 false。决定是否执行只读语句。* localParams:为本地 Cypher 语句添加可选参数

驱动程序配置

要设置驱动程序的配置,可以在 config 中添加参数 driverConfig。它是一个值映射,我们未传递给配置的值将设置为默认值。

{logging='INFO', encryption=true, logLeakedSessions:true, maxIdleConnectionPoolSize:10, idleTimeBeforeConnectionTest:-1, trustStrategy:'TRUST_ALL_CERTIFICATES',
 routingFailureLimit: 1, routingRetryDelayMillis:5000, connectionTimeoutMillis:5000, maxRetryTimeMs:30000 }
参数 description(描述) 可选值/类型

日志记录

使用的日志记录提供程序

INFO, WARNING, OFF, SEVERE, CONFIG, FINE, FINER

encryption

禁用或启用加密

true, false

logLeakedSessions

禁用或启用泄露会话的日志记录

true, false

maxIdleConnectionPoolSize

最大连接数

数量 (number)

idleTimeBeforeConnectionTest

在池中空闲时间超过此超时的池化连接

毫秒

trustStrategy

指定如何确定我们连接的 Neo4j 实例所提供的加密证书的真实性

TRUST_ALL_CERTIFICATES, TRUST_SYSTEM_CA_SIGNED_CERTIFICATES,或直接使用自定义证书

routingFailureLimit

重试路由服务器列表中每个服务器的次数

数量 (number)

routingRetryDelayMillis

指定在重试连接路由服务器之前等待的时间

毫秒

connectionTimeoutMillis

指定套接字连接超时

毫秒

maxRetryTimeMs

指定允许事务重试的最长时间

毫秒

您可以在文档 Config.ConfigBuilder 中找到所有值

Bolt 示例

以映射格式返回节点

call apoc.bolt.execute("bolt://user:password@localhost:7687",
"match(p:Person {name: $name}) set p.surname = $surname return p",
{name:'Michael', surname: 'Jordan'})
apoc.bolt.execute.nodemap

以虚拟节点(Virtual Node)格式返回节点

call apoc.bolt.load("bolt://user:password@localhost:7687",
"match(p:Person {name: $name}) return p", {name:'Michael'}, {virtual:true})
apoc.bolt.load.virtualnode

创建节点并返回统计信息

call apoc.bolt.execute("bolt://user:password@localhost:7687",
"create(n:Node {name: $name})", {name:'Node1'}, {statistics:true})
apoc.bolt.execute.createandstatistics

返回更多标量值

call apoc.bolt.execute("bolt://user:password@localhost:7687",
"match (n:Person {name: $name}) set n.foo = 'bar' return n.age as age, n.name as name, n.surname as surname, n.foo as foo", {name:'Michael'})
apoc.bolt.execute.scalarmulti

以映射格式返回关系

call apoc.bolt.load("bolt://user:password@localhost:7687",
"MATCH (n:Person{name: $name})-[r:KNOWS]->(p) return r as rel", {name:'Anne'})
apoc.bolt.load.relmap

返回虚拟路径

call apoc.bolt.load("bolt://user:password@localhost:7687",
"MATCH (n) WHERE id(n) = $idNode MATCH path= (n)-[r:REL_TYPE*..3]->(o) return path", {idNode:200}, {virtual:true})
apoc.bolt.load.returnvirtualpath

创建带有输入参数的节点

call apoc.bolt.execute("bolt://user:password@localhost:7687",
"CREATE (n:Car{brand: $brand, model: $model, year: $year}) return n", {brand:'Ferrari',model:'California',year:2016})
apoc.bolt.execute.createwithparams
© . This site is unofficial and not affiliated with Neo4j, Inc.