Bolt
Bolt 过程允许通过 bolt 协议访问其他数据库。
限定名称 | 类型 | 版本 |
---|---|---|
|
|
|
|
|
|
|
|
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;
call apoc.bolt.load("","match(p:Person {name: $name}) return p", {name:'Michael'})
//simple url
apoc.bolt.url=bolt://user:password@localhost:7687
2) 按键: 使用个人密钥 apoc.bolt.yourKey.url 设置 url;在这种情况下,用户必须在 apoc 的 url 参数中插入该密钥。
call apoc.bolt.load("test","match(p:Person {name: $name}) return p", {name:'Michael'})
//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。此配置在 apoc.bolt.load 中以虚拟格式而非映射格式返回结果。 -
databaseName
: 远程 Neo4j 实例上的数据库实例名称。默认值为 'neo4j'。对于不支持数据库名称的协议(Neo4j 4.x 之前),请将此值设置为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 }
参数 | 描述 | 可能的值/类型 |
---|---|---|
日志记录 |
要使用的日志记录提供程序 |
INFO, WARNING, OFF, SEVERE, CONFIG, FINE, FINER |
加密 |
禁用或启用加密 |
true, false |
logLeakedSessions |
禁用或启用日志记录泄露的会话 |
true, false |
maxIdleConnectionPoolSize |
最大连接数 |
数字 |
idleTimeBeforeConnectionTest |
在连接池中空闲时间超过此超时时间的连接 |
毫秒 |
trustStrategy |
指定如何确定要连接的 Neo4j 实例提供的加密证书的真实性 |
TRUST_ALL_CERTIFICATES, TRUST_SYSTEM_CA_SIGNED_CERTIFICATES,或直接指定自定义证书 |
routingFailureLimit |
重试路由服务器列表中的每个服务器的次数 |
数字 |
routingRetryDelayMillis |
指定重试连接到路由服务器之前等待的时间 |
毫秒 |
connectionTimeoutMillis |
指定 socket 连接超时 |
毫秒 |
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'})
以虚拟节点格式返回节点
call apoc.bolt.load("bolt://user:password@localhost:7687",
"match(p:Person {name: $name}) return p", {name:'Michael'}, {virtual:true})
创建节点并返回统计信息
call apoc.bolt.execute("bolt://user:password@localhost:7687",
"create(n:Node {name: $name})", {name:'Node1'}, {statistics:true})
返回更多标量值
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'})
以映射格式返回关系
call apoc.bolt.load("bolt://user:password@localhost:7687",
"MATCH (n:Person{name: $name})-[r:KNOWS]->(p) return r as rel", {name:'Anne'})
返回虚拟路径
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})
使用输入参数创建节点
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})