Couchbase

限定名称 类型 版本

apoc.couchbase.get

apoc.couchbase.get(hostOrKey, bucket, documentId) yield id, expiry, cas, mutationToken, content - 通过唯一 ID 获取 Couchbase JSON 文档。

过程

Apoc Extended

apoc.couchbase.exists

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

过程

Apoc Extended

apoc.couchbase.upsert

apoc.couchbase.upsert(hostOrKey, bucket, documentId, jsonDocument) yield id, expiry, cas, mutationToken, content - 使用唯一 ID 插入或覆盖 Couchbase JSON 文档。

过程

Apoc Extended

apoc.couchbase.append

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

过程

Apoc Extended

apoc.couchbase.prepend

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

过程

Apoc Extended

apoc.couchbase.remove

apoc.couchbase.remove(hostOrKey, bucket, documentId) yield id, expiry, cas, mutationToken, content - 移除由唯一 ID 标识的 Couchbase JSON 文档。

过程

Apoc Extended

apoc.couchbase.replace

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

过程

Apoc Extended

apoc.couchbase.query

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

过程

Apoc Extended

安装依赖

(已在 CB Enterprise 5.5.3 环境下测试)

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

或者,您可以从 maven 仓库将 Couchbase Java SDKCouchbase JVM Core IO 复制到 plugins 目录中。

使用

要与 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')

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

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

有关这些配置参数的详细说明,请参考官方 Couchbase 文档

配置参数

该过程支持以下配置参数

表 1. 配置参数
名称 (name) type 默认 description(描述)

collection

字符串

"_default"

要使用的集合。参见 Scope 和 collections

scope

字符串

"_default"

要使用的作用域。参见 Scope 和 collections

compressionEnabled

boolean

true

如果启用,客户端将在将文档发送到 Couchbase 服务器之前对其进行压缩。详见此处

compressionMinSize

整数

32

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

compressionMinRatio

双精度浮点数

0.83

0 到 1 之间的值。指定文档需要有多大的“可压缩性”才能将压缩形式发送到服务器。

mutationTokensEnabled

boolean

true

Mutation token 允许更高的持久性要求以及高级 N1QL 查询功能。如果您不需要这些功能并希望避免相关的开销,请将其设置为 false。

retryStrategy

枚举[FAILFAST, BESTEFFORT]

BESTEFFORT

客户端默认的重试策略。重试策略决定了失败的操作是否应该重试。详见此处

transcoder

枚举[DEFAULT, RAWJSON, RAWSTRING, RAWBINARY]

DEFAULT

负责在 Java 对象与 KV 二进制包之间进行转换的转码器。

connectTimeout

Long

null

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

kvTimeout

Long

null

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

disconnectTimeout

Long

10000

断开集群连接时使用的断开连接超时时间(以毫秒为单位)。

queryTimeout

Long

75000

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

analyticsTimeout

Long

75000

用于所有分析查询操作的分析超时时间(以毫秒为单位)。

viewTimeout

Long

75000

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

searchTimeout

Long

75000

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

configPollInterval

Long

2500

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

idleHttpConnectionTimeout

Long

4500

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

enableTcpKeepAlives

boolean

true

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

tcpKeepAliveTime

long

60000

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

enableDnsSrv

boolean

true

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

networkResolution

com.couchbase.client.core.env.NetworkResolution

null

网络解析。详情参见此处

trustCertificate

boolean

null

如果不为 null,则为包含单个 X.509 证书的文件路径,该证书在建立安全连接时作为证书颁发机构信任。如果存在,这将启用 TLS。详情参见此处

waitUntilReady

Long

null

此方法将等待直到集群状态变为“在线”(默认),或者达到超时时间。

© . This site is unofficial and not affiliated with Neo4j, Inc.