我在couchbase中有一个json文档,其结构如下所示
"root": {
"type": "TEST",
"parameters": {
"numbers": [
"1",
"2-001",
"3",
"2-001",
"5-002"
]
}
}
我需要添加一个新的键值对,并使文档看起来像这样
"root": {
"type": "TEST",
"parameters": {
"numbers": [
"1",
"2-001",
"3",
"2-001",
"5-002"
],
"unique": [
"1",
"2",
"3",
"5"
]
}
}
我应该删除-之后的所有内容,然后选择其中包含的唯一元素。
如果要使用N1QL进行此操作,可以将ARRAY
转换与结合使用ARRAY_DISTINCT
。转换将取决于您。您可以使用REGEXP_函数之一或类似的简单函数SPLIT
。例如:
select ARRAY_DISTINCT(ARRAY SPLIT(v,"-")[0] FOR v IN d.root.parameters.numbers END) as `unique`, d.root.parameters.numbers
from mybucket d;
这将以以下形式返回文档:
[
{
"numbers": [
"1",
"2-001",
"3",
"2-001",
"5-002"
],
"unique": [
"1",
"2",
"3",
"5"
]
}
]
如果你想真正做出改变的文件(S),你就可以说SELECT
成UPDATE
:
UPDATE mybucket
SET root.`unique` = ARRAY_DISTINCT(ARRAY SPLIT(v,"-")[0] FOR v IN root.parameters.numbers END)
where root.`unique` is missing;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句