按未知属性名称过滤

时间:2020-09-30 03:41:18

标签: azure-cosmosdb azure-cosmosdb-sqlapi

给出以下文件:

{
    "id": 1,
    "types":
    {
        "type1": { "visible": true },
        "type2": { "visible": false }
    }
},
{
    "id": 2,
    "types":
    {
        "type3": { "visible": true }
    }
},
{
    "id": 3,
    "types":
    {
        "type4": { "visible": false }
    }
}

我应该编写哪种SQL查询来返回至少一种类型为“可见” ==假的文档?

请注意,“类型”是对象,而不是数组。实际上,这是一本以属性名称为键的字典。 “类型”对象的属性名称是不可预测的,因此我无法在查询中对其进行硬编码。

1 个答案:

答案 0 :(得分:0)

据我所知,没有办法直接使用SQL进行处理。

有两种解决方法。首先,使用已知密钥更改文档的架构。另一个,创建UDF来解决这个问题。

您可以参考Querying complex nested object in cosmosdb using sql Api