我正在尝试查询id与我的密钥匹配的所有文档,例如:example\u key\u 123
Statement statement = select("META().id").from(i("bucketname")).where(x("META().id").like(x("'example\\_key%'")));
N1qlQueryResult res = bucket.query(N1qlQuery.simple(statement));
这是我正在尝试的代码,但是它不断地给我这个桶中的所有文档,而不仅仅是匹配的文档。当我在不转义下划线的情况下这样做时:
Statement statement = select("META().id").from(i("bucketname")).where(x("META().id").like(x("'example_key%'")));
它会一直持续下去,给我一个暂停。在intellij中尝试一个\给我一个编译器错误,说“字符串文字中的非法转义字符”
我使用的是CouchbaseServer4.5和JavaSDK2.7.15
编辑
解决方法是使用如下四个反斜杠:
example\\\\_key%
1条答案
按热度按时间eoigrqb61#
下面是正确的查询。您可以尝试使用sql语句作为字符串(不使用dsl语句)
也许可以试试这个。