UPDATE SOME_BUCKET as doc USE KEYS ["USER_ACCESS::123456::SOME_ROLE", "MORE KEYS HERE...", etc]
loc.id = REGEXP_REPLACE(loc.id, "(.*) - (.*)", "$1-$2") FOR loc IN locations END
RETURNING doc
在这里设置“loc.id”只是为其分配字符串文字替换值,“$ 1- $ 2” ,而不是对捕获组的反向引用。Couchbase Server运行GoLang regex语法,这显然可能不支持反向引用?有什么选择吗?
最佳答案
更新所需的SET,UNSET子句https://docs.couchbase.com/server/current/n1ql/n1ql-language-reference/update.html#update-for
检查例3
UPDATE SOME_BUCKET as doc
USE KEYS ["USER_ACCESS::123456::SOME_ROLE", "MORE KEYS HERE...", etc]
SET loc.id = REGEXP_REPLACE(loc.id, "(.*) - (.*)", "$1-$2") FOR loc IN locations END
RETURNING doc;
关于sql - Couchbase N1QL-内联正则表达式捕获组替换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62459412/