我想检索和操作一些 Couchbase 文档,即检索并进行一些字符串操作,但我在网上看不到初学者示例。
我在这里使用的方法正确还是有更简单的方法...?
SELECT meta().id
FROM bucket_foo
where meta().id like "%-foobar"
ORDER BY meta().id
这给了我查询结果...
[
{
"id": "172.26.138.52-foobar"
},
{
"id": "172.26.138.53-foobar"
},
{
"id": "172.26.138.64-foobar"
}
]
我想删除后缀,即将其转换为:
[
{
"id": "172.26.138.52"
},
{
"id": "172.26.138.53"
},
{
"id": "172.26.138.64"
}
]
所以看完https://developer.couchbase.com/documentation/server/4.0/n1ql/n1ql-language-reference/stringfun.html我试过了……
SELECT REPLACE(
(SELECT meta().id FROM foo where meta().id like "%-foobar" ORDER BY meta().id)
, "-foobar", "") as replace_all;
但是我明白了
[
{
"replace_all": null
}
]
[我是 Couchbase 的新手。]
最佳答案
你的方法是正确的,子查询返回数组,你不能替换数组。在这种情况下不需要子查询。
您可以使用 RTRIM() 或 REPLACE() 或 SUBSTR() 或类似函数
SELECT RTRIM(meta().id,"-foobar") AS id
FROM bucket_foo
where meta().id like "%-foobar"
ORDER BY id;
或
SELECT REPLACE(meta().id,"-foobar","") AS id
FROM bucket_foo
where meta().id like "%-foobar"
ORDER BY id;
或
SELECT SUBSTR(meta().id,0,LENGTH(meta().id)-LENGTH("-foobar")) AS id
FROM bucket_foo
where meta().id like "%-foobar"
ORDER BY id;
关于couchbase - 在 N1QL 响应中使用 Couchbase 字符串函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51176065/