问题标签 [couchbase-java-api]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
43 浏览

couchbase - 使用 spark 对 100m 记录执行聚合时在 Couchbase 中获取查询超时

使用 spark 从 cocuhbase 存储桶中读取 100m 条记录时出现查询超时

0 投票
1 回答
683 浏览

java - 如何使用 Couchbase Java SDK 修改存储桶中的文档而不更改其“过期”值?

我必须使用 Java SDK 修改 Couchbase 存储桶中的文档(目前它是版本 2.7.7 中的 Java 客户端,但是可以根据需要进行更改)而不更改其“过期”值。桶中没有索引,N1QL 查询也不是一个选项,所以我必须坚持使用键/值操作。

这是描述问题的最小示例,以及到目前为止我尝试过的内容:
我在存储桶中有一个 json 文档,它是使用 Java SDK 创建的:

我想获取这个对象并修改它的“lessImportant”属性,但我不想在执行此操作时更改对象元数据中的“过期”值。

当我尝试设置属性并重新发送对象时:

或创建新的而不指定过期值:

或者将 upsert() 替换为 replace(),然后我可以看到每次更新文档时,它的“过期”值都会被删除(它设置为 0,对于 Couchbase 意味着插入后它应该处理这个文档,因为它根本没有设置过期日期——文档应该永远保持)

正如我在创建 JsonDocument 并且没有明确设置“过期”时观察到的那样:

然后默认情况下此值设置为 0 :

此外,事实证明,无论存储桶内的实际过期时间是多少,bucket.get(String id)返回的“过期”属性值始终为 0 的文档(是 SDK 的错误,还是只是预期的行为?),所以当我我正在尝试 upsert 检索到的文档,“过期”为 0:

是否可以以不修改此特定元数据的方式更新文档或获取旧的“过期”值,以便在插入之前将其设置为正确的值?

0 投票
1 回答
67 浏览

spring-boot - Couchbase 的 Spring Data - 元数据信息

我是使用 Spring Data for Couchbase 的新手,我定义了这个对象

但我不确定对象中定义的 id 是否与 Couchbase 元数据信息相同,以及如何定义它的格式

0 投票
2 回答
660 浏览

spring-boot - Couchbase 的 Spring Data - 计算数据库中的元素

我是使用 Spring Data for Couchbase 的新手,我定义了这个对象

我想按 ID 计算数据库中的所有元素,所以我创建了这个函数:

但我得到0,就在保存对象之后

我也试过

但我得到了这个例外

0 投票
1 回答
155 浏览

java - Couchbase 的 Spring Data - 增加特殊计数器文档的数值

我想增加特殊计数器文档的数值,从计数器文档中获取id并增加它

但我不知道如何实例化桶对象

0 投票
0 回答
121 浏览

spring - CouchbaseException:使用计数器时的 INVALID_ARGUMENTS

我有一个 springBoot 2.1.9.RELEASE 应用程序,它使用 Spring Data for Couchbase 但是当我使用 Couchbase 中的 Atomic 计数器将计数器增加 1

我有一个例外

我也试过

但我得到了一个java.lang.NumberFormatException,因为legacyDocument.content()给了我所有的 Json 文档。:

0 投票
1 回答
280 浏览

json - Couchbase 的 Spring 数据 - java.lang.IllegalArgumentException:JsonArray 不支持的类型:

我有一个 SpringBoot 2 应用程序,它使用 Couchbase 作为数据库、Spring-Boot 和 Spring-Data 以及 Lombok 的 getter 和 equals 方法我已经创建了这个存储库

这里是使用 Lombok 库创建的所有对象

但是当我运行存储库查询时,我收到了这个错误:

0 投票
1 回答
137 浏览

java - Couchbase 的 Spring Data:使用 AND ANY ... 满足

我有一个 SpringBoot 2 应用程序,它使用 Couchbase 作为数据库、Spring-Boot 和 Spring-Data 以及 Lombok 的 getter 和 equals 方法我已经创建了这个存储库

这里是使用 Lombok 库创建的所有对象

但是当我运行存储库查询时,我总是得到 0 个结果,即使有文档。在数据库中:

0 投票
1 回答
34 浏览

jpa - 带参数的Spring数据查询

我必须在 Spring 数据中创建这个 N1QL couchbase 查询

其中100是一个参数,但我不知道是否可能

0 投票
1 回答
418 浏览

docker - docker 中的 Couchbase 进行集成测试:使端口 8092、8093、8094 和 8095 可配置以能够使用 docker 的随机端口

我正在使用 Couchbase java 客户端 SDK 2.7.9,在尝试运行自动化集成测试时遇到了问题。在这样的测试中,我们通常使用随机端口来在同一个 Jenkins slave 上运行相同的东西(例如使用 docker)。

但是,对于客户端,我们可以指定许多自定义端口,但不能指定 8092、8093、8094 和 8095。

流行的 TestContainers 模块也提到这些端口必须在其 Couchbase 模块中保持静态:https ://www.testcontainers.org/modules/databases/couchbase/ 1

显然,也可以在服务器级别更改这些端口。

例子:

Docker-compose.yml

泊坞窗图像是 'couchbase:community-5.1.1'</p>

内部端口是上面写的端口,但在外部它们是随机的。在客户端级别,您可以设置 bootstrapHttpDirectPort 和 bootstrapCarrierDirectPort 但显然 8092 和 8093 端口是从服务器端获取的(谁不知道分配给他的端口)。

我想问您是否可以在客户端级别更改这些端口,如果没有,是否可以认真考虑添加该功能。