按未知属性名称过滤

问题描述

给出以下文件

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

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

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

解决方法

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

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

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