Couchbase

限定名称 类型 版本

apoc.couchbase.get

apoc.couchbase.get(hostOrKey, bucket, documentId) yield id, expiry, cas, mutationToken, content - 通过其唯一 ID 检索 couchbase json 文档。

过程

Apoc 扩展

apoc.couchbase.exists

apoc.couchbase.exists(hostOrKey, bucket, documentId) yield value - 检查是否存在具有给定 ID 的 couchbase json 文档。

过程

Apoc 扩展

apoc.couchbase.upsert

apoc.couchbase.upsert(hostOrKey, bucket, documentId, jsonDocument) yield id, expiry, cas, mutationToken, content - 插入或覆盖具有其唯一 ID 的 couchbase json 文档。

过程

Apoc 扩展

apoc.couchbase.append

apoc.couchbase.append(hostOrKey, bucket, documentId, jsonDocument) yield id, expiry, cas, mutationToken, content - 将 couchbase json 文档追加到现有文档。

过程

Apoc 扩展

apoc.couchbase.prepend

apoc.couchbase.prepend(hostOrKey, bucket, documentId, jsonDocument) yield id, expiry, cas, mutationToken, content - 将 couchbase json 文档预置到现有文档。

过程

Apoc 扩展

apoc.couchbase.remove

apoc.couchbase.remove(hostOrKey, bucket, documentId) yield id, expiry, cas, mutationToken, content - 删除通过其唯一 ID 标识的 couchbase json 文档。

过程

Apoc 扩展

apoc.couchbase.replace

apoc.couchbase.replace(hostOrKey, bucket, documentId, jsonDocument) yield id, expiry, cas, mutationToken, content - 替换通过其唯一 ID 标识的 couchbase json 文档的内容。

过程

Apoc 扩展

apoc.couchbase.query

apoc.couchbase.query(hostOrKey, bucket, statement) yield queryResult - 执行简单的非参数化 N1QL 语句。

过程

Apoc 扩展

安装依赖项

(已使用 CB Enterprise 5.5.3 测试)

Couchbase 过程依赖于 APOC 扩展库中未包含的客户端库。 此依赖项包含在 apoc-couchbase-dependencies-5.21.0-all.jar 中,可以从 发行页面 下载。 下载该文件后,应将其放置在 plugins 目录中,并重新启动 Neo4j 服务器。

或者,您可以从 Maven 存储库中复制到 plugins 目录,Couchbase Java SDKCouchbase JVM Core IO

用法

要与 Couchbase 交互,您可以定义要连接到的主机作为过程的第一个参数(以 bucket 为第二个参数,document_id 为第三个参数)

CALL apoc.couchbase.get('couchbase://Administrator:password@localhost', 'default', 'artist:vincent_van_gogh')

否则,您可以使用与 MongoDB 相同的方式使用配置属性。 例如,您可以将以下属性添加到 apoc.conf 文件中

apoc.couchbase.mykey.username=Administrator
apoc.couchbase.mykey.password=password
apoc.couchbase.mykey.uri=host1,host2,host3 // here you can define more than one hostname if you're using a cluster
apoc.couchbase.mykey.port=8091 // the bootstrapHttpDirectPort (optional)
CALL apoc.couchbase.get('mykey', 'default', 'artist:vincent_van_gogh')

您还可以定义一些 CouchbaseEnvironment 参数在 apoc.conf 中

apoc.couchbase.connectTimeout=<default=5000>
apoc.couchbase.kvTimeout=<default=2500>
apoc.couchbase.ioPoolSize=<default=3>

要深入了解这些配置参数的描述,请参阅 官方 Couchbase 文档

配置参数

这些过程支持以下配置参数

表 1. 配置参数
名称 类型 默认值 描述

集合

字符串

"_default"

要使用的集合。请参阅 范围和集合

范围

字符串

"_default"

要使用的范围。请参阅 范围和集合

compressionEnabled

布尔值

true

如果启用,客户端会在将文档发送到 Couchbase Server 之前对其进行压缩。请参阅 此处.

compressionMinSize

整数

32

以字节为单位的大小。小于此大小的文档永远不会被压缩。

compressionMinRatio

双精度浮点数

0.83

介于 0 和 1 之间的值。指定文档必须是“可压缩”的程度,以便将压缩形式发送到服务器。

mutationTokensEnabled

布尔值

true

变异令牌允许增强耐用性要求以及高级 N1QL 查询功能。如果您不需要这些功能并希望避免相关的开销,请将其设置为 false。

retryStrategy

枚举[FAILFAST, BESTEFFORT]

BESTEFFORT

客户端的默认重试策略。重试策略决定是否应重试失败的操作。请参阅 此处.

transcoder

枚举[DEFAULT, RAWJSON, RAWSTRING, RAWBINARY]

DEFAULT

负责将 KV 二进制包转换为 Java 对象以及从 Java 对象转换的转码器。

connectTimeout

长整型

null

打开 Bucket 时使用的连接超时时间(以毫秒为单位)。如果为 null,将使用 apoc.conf 参数 apoc.couchbase.connectTimeout

kvTimeout

长整型

null

在对特定键执行的操作中使用的 Key/Value 默认超时时间(以毫秒为单位)。如果为 null,将使用 apoc.conf 参数 apoc.couchbase.kvTimeout

disconnectTimeout

长整型

10000

断开连接超时时间(以毫秒为单位)用于断开 Cluster 的连接

queryTimeout

长整型

75000

所有 N1QL 查询操作中使用的查询超时时间(以毫秒为单位)

analyticsTimeout

长整型

75000

所有 Analytics 查询操作中使用的 Analytics 超时时间(以毫秒为单位)。

viewTimeout

长整型

75000

视图操作中使用的视图超时时间(以毫秒为单位)。如果请求期间出现节点故障,内部集群超时时间将设置为 60 秒。

searchTimeout

长整型

75000

搜索超时时间用于所有 FTS 操作

configPollInterval

长整型

2500

客户端获取集群拓扑信息以主动检测更改的间隔。

idleHttpConnectionTimeout

长整型

4500

HTTP 连接在关闭并从池中删除之前可以保持空闲的时间长度。不建议使用超过 50 秒的持续时间,因为某些服务具有 1 分钟的服务器端空闲超时时间。

enableTcpKeepAlives

布尔值

true

如果启用,客户端会定期向服务器发送 TCP 保活信号,以防止防火墙和其他网络设备丢弃空闲的 TCP 连接。

tcpKeepAliveTime

长整型

60000

触发 TCP 保活信号的空闲时间。 (如果 enableTcpKeepAlives 为 false,则此设置无效。)TODO

enableDnsSrv

布尔值

true

从 DNS SRV 记录中获取引导节点列表。TODO

networkResolution

com.couchbase.client.core.env.NetworkResolution

null

网络解析。有关详细信息,请参阅 此处.

trustCertificate

布尔值

null

如果非空,则为包含单个 X.509 证书的文件的路径,在建立安全连接时将其信任为证书颁发机构。如果存在,这将启用 Tls。有关详细信息,请参阅 此处.

waitUntilReady

长整型

null

此方法将等待,直到集群状态默认情况下为“联机”,或达到超时时间。