N1QL 查询 select Couchbae 中的动态键
N1QL query to select a dynamic key in Couchbae
我有以下结构,其中数组的键是动态的,等于键“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 查询 select 包含具有名称和扩展名的数组的动态键。我要找的结果应该是:
[
{
"name": "license",
"ext": "jpg",
},
{
"name": "jan-statement",
"ext": "pdf",
},
{
"name": "feb-statement",
"ext": "pdf",
}
]
由于批处理字段中有动态字段名称,因此您可以使用以下方法使用动态引用(字典引用,点和数组括号之间没有字段名称)。 d.[d.batch] ===> d.batch 必须评估为字符串 ===> d.["7163"] ==> d.`7163` ==> returns 值字段 `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
我有以下结构,其中数组的键是动态的,等于键“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 查询 select 包含具有名称和扩展名的数组的动态键。我要找的结果应该是:
[
{
"name": "license",
"ext": "jpg",
},
{
"name": "jan-statement",
"ext": "pdf",
},
{
"name": "feb-statement",
"ext": "pdf",
}
]
由于批处理字段中有动态字段名称,因此您可以使用以下方法使用动态引用(字典引用,点和数组括号之间没有字段名称)。 d.[d.batch] ===> d.batch 必须评估为字符串 ===> d.["7163"] ==> d.`7163` ==> returns 值字段 `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