java - Couchbase 中不区分大小写的文档 ID 匹配
问题描述
我com.couchbase.client
在 java spring 项目中使用 maven 依赖项。我通过以下方式从代码中获取 couchbase 文档:
JsonDocument document = bucket.get(id); //matches id case sensitively
但我有一个新的要求。我必须根据id的不区分大小写匹配来获取文档。
例如:假设 couchbase 有一个带有 id 的文档heLLo_Doc
当我执行时,我希望返回bucket.get("hello_doc")
带有 id 的文档。heLLo_Doc
如果有多个文档具有相同的小写 ID(例如:Hello_Doc
等hEllo_doc
),我需要获取所有这些文档。
couchbase 有没有提供任何方法来做到这一点?
最糟糕的方法是搜索我不想做的所有可能性。
解决方案
如果你想使用 N1QL。您需要在文档键上创建功能索引
CREATE INDEX ix1 ON default(LOWER(META().id));
SELECT * FROM default WHERE LOWER(META().id) = "hello_doc";
或者
SELECT META().id FROM default WHERE LOWER(META().id) = "hello_doc";
The second query gives actual document keys then you can pass this to your existing bucket.get() call too.
推荐阅读
- react-native - 在同一台设备上运行两个 Expo 发布频道?
- java - 在 Spring Boot 中将异常保存在数据库中
- vue.js - Adobe XD 插件 VueJs
- c - 如何正确格式化“for”循环
- vue.js - VueJS:动态更改 SCSS 变量颜色或动态导入 scss 文件
- spring - RestController 方法没有被调用
- gnuplot - 如何在gnuplot中使用列头的子字符串?
- git - git stash -u 将未跟踪的文件留在工作目录中
- python - 如何使用 python boto3 从多个 AWS 账户生成 EC2 库存
- php - 使用 PHP Mysql Flutter 用户特定的推送通知