spring-boot - 如何在沙发库中使用 LIKE n1ql 查询?
问题描述
我想代表一个我还没有理解的问题。我向您展示以下示例。这是我的文件
doc 1 : {"type":"81"}
doc 2 : {"type":"81_"}
doc 3 : {"type":"8"}
doc 4 : {"type":"8_"}
doc 5 : {"type":"13"}
现在,我想使用 n1ql 查询以获取匹配类型的文档,例如“8_%” 8_ 应该是字符串前缀
@Query("#{#n1ql.selectEntity} where code like "8_%" ")
**or**
@Query("#{#n1ql.selectEntity} where code like (concat(8,_,'%')) ")
他们俩都不正确我是除了。响应应该只有一个文档是文档 4:{“type”:“8_”}。但是这个回应如下文件。
doc 1 : {"type":"81"}
doc 2 : {"type":"81_"}
doc 3 : {"type":"8"}
doc 4 : {"type":"8_"}
你能帮助我吗?谢谢你。我正在使用Couchbase 3.1.8。对不起我的英语不好
解决方案
以下查询应返回正确的结果
SELECT META().id FROM mybucket WHERE type LIKE "8_%"
使用通配符表达式匹配字符串。使用 % 表示零个或多个通配符,使用 _ 匹配字符串中此位置的任何字符(https://docs.couchbase.com/server/current/n1ql/n1ql-language-reference/comparisonops.html)
如果你想匹配 _ 因为它是逃避它。
SELECT META().id FROM mybucket WHERE type LIKE "8\\_%";
如果您使用的是 Couchbase 3.1.8,它已经很旧了,您应该尝试最新的 Couchbase 版本 6.5.0。
我认为 N1QL 版本是从 Couchbase 4.0.0 开始的
推荐阅读
- python - 有没有办法在 Python IDLE 中删除输出
- java - Java 字符串搜索 - 在字符串的任一侧搜索动态长度的文本
- javascript - Google Script Oauth v1.0 REST API 访问
- matlab - 在 Simulink 中将 [Nx1] 信号转换为 N 个单独的信号
- javascript - 在 Chrome / JSP、JAVASCRIPT 上设置 cookie SameSite=None 不起作用
- excel - Excel VBA使用带有子文件夹的for循环获取所有子文件夹名称。项目(键)。名称
- python - 从 c++ 代码运行 python 脚本并在 c++ 中使用 pythons 输出
- django - Django 迁移中的索引已经存在错误
- facebook-graph-api - 视频源坏了| Facebook 图形 API
- .net - 服务参数为空 asp.net core 3.0 从构造函数注册服务