【发布时间】:2023-03-09 19:09:01
【问题描述】:
我正在使用 Spring 的响应式堆栈以及 Spring 的响应式 couchbase 来构建 api,并且需要帮助来转换我想从 ReactiveCouchbaseRepository 使用的查询。
在 couchbase 中创建索引的方法取自这篇文章: https://forums.couchbase.com/t/indexing-array-of-strings/14977
CREATE INDEX idx_emaillist ON api (DISTINCT ARRAY k FOR k IN emails.emaillist END);
我用来搜索的查询是:
SELECT * FROM user AS u WHERE ANY k IN u.emails.emaillist SATISFIES k = "abc@email.com" END;
这个查询的结果是:
[
{
"u": {
"_class": "com.users.api.model.User",
"name": "abc",
"emails": {
"emaillist": [
"abc@email.com",
""xyz@email.com"
]
}
}
}
]
我想从扩展 ReactiveCouchbaseRepository 的接口中声明的方法中使用相同的查询。
我也尝试了这张票中指定的方法: Can we Convert N1QL to shEL query for Spring use
这种方法效果很好,但我希望 Spring 处理样板代码,并且还注意到调用是阻塞的,但我希望对 couchbase 进行非阻塞调用。
【问题讨论】:
标签: reactive-programming spring-data-couchbase