首页 > 解决方案 > 查询 CosmosDB 嵌套结构 JSON

问题描述

我正在为我们的一个应用程序使用 CosmosDB SQLAPI。我使用 Azure 存储探索进行查询。我发现很难查询的 JSON 结构。

{
    "countyid": 0,
    "data": [
        [
            {
                "Elements": [
                    {
                        "ID": 11,
                        "V": false,
                        "R": false
                    },
                    {
                        "ID": 16,
                        "V": false,
                        "R": false
                    },
                    {
                        "ID": 3,
                        "V": false,
                        "R": false
                    },
                    {
                        "ID": 5,
                        "V": false,
                        "R": false
                    }
                ]
            },
            {
                "Elements": [
                    {
                        "ID": 486,
                        "V": false,
                        "R": false
                    },
                    {
                        "ID": 492,
                        "V": false,
                        "R": false
                    }
                ]
            }
        ]
    ]
}

我需要获取 Elements[0] ID = 3,5,11,16 和 Elements 2 ID = 486,492

CosmosDB 查询 JSON 编辑窗口

Azure 存储资源管理器窗口尝试查询

查询在没有 where 条件的情况下工作

标签: jsonazure-storageazure-cosmosdbqsqlqueryazure-cosmosdb-sqlapi

解决方案


查询嵌套数组数据时需要使用join,请试试这个sql:

SELECT distinct c.data  from c
join elem1 in c.data[0].Elements
join elem2 in c.data[1].Elements
where elem1.ID in(3,5,6,11) and elem2.ID in (486,492)

推荐阅读