Couchbase N1QL查询选择Couchbae中的动态密钥
我有以下结构,其中数组的键是动态的,并且与键“batch”的值相等 我正在寻找一个N1QL查询来选择包含具有名称和扩展名的数组的动态键。我想要的结果应该是:Couchbase N1QL查询选择Couchbae中的动态密钥,couchbase,n1ql,Couchbase,N1ql,我有以下结构,其中数组的键是动态的,并且与键“batch”的值相等 我正在寻找一个N1QL查询来选择包含具有名称和扩展名的数组的动态键。我想要的结果应该是: [ { "name": "license", "ext": "jpg", }, { "name": "jan-statement",
[
{
"name": "license",
"ext": "jpg",
},
{
"name": "jan-statement",
"ext": "pdf",
},
{
"name": "feb-statement",
"ext": "pdf",
}
]
由于批处理字段中有动态字段名,因此可以使用以下方法使用动态引用(字典引用,点和数组括号之间没有字段名)。d、 [d.batch]==>d.batch必须计算为字符串==>d.[7163]=>d.`7163`=>返回字段`7163`的值`
SELECT du.*
FROM default AS d
UNNEST d.[d.batch] AS du
WHERE d.type = "ECS";
您还可以探索对象函数(OBJECT_NAMES()、OBJECT_VALUES()、OBJECT_PAIRS())将动态对象转换为数组并对其进行迭代
SELECT du.*
FROM default AS d
UNNEST d.[d.batch] AS du
WHERE d.type = "ECS";