Couchbase N1QL查询选择Couchbae中的动态密钥

Couchbase N1QL查询选择Couchbae中的动态密钥,couchbase,n1ql,Couchbase,N1ql,我有以下结构,其中数组的键是动态的,并且与键“batch”的值相等 我正在寻找一个N1QL查询来选择包含具有名称和扩展名的数组的动态键。我想要的结果应该是: [ { "name": "license", "ext": "jpg", }, { "name": "jan-statement",

我有以下结构,其中数组的键是动态的,并且与键“batch”的值相等

我正在寻找一个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_NAMES()、OBJECT_VALUES()、OBJECT_PAIRS())将动态对象转换为数组并对其进行迭代

SELECT du.*
FROM default AS d
UNNEST d.[d.batch] AS du
WHERE d.type = "ECS";