我具有以下结构,其中数组的键是动态的,并且等于键“ batch”的值。
[
{
"7163": [
{
"name": "license",
"ext": "jpg",
}
],
"batch": "7163",
"type": "ECS"
},
{
"8012": [
{
"name": "jan-statement",
"ext": "pdf",
},
{
"name": "feb-statement",
"ext": "pdf",
}
],
"batch": "8012",
"type": "ECS"
}
]
我正在寻找一个N1QL查询来选择包含包含名称和扩展名的数组的动态键。我正在寻找的结果应该是:
[
{
"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函数(OBJECT_NAMES(),OBJECT_VALUES(),OBJECT_PAIRS()),将动态对象转换为ARRAY并对其进行迭代。https://docs.couchbase.com/server/current/n1ql/n1ql-language-reference/objectfun.html
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句