Запрос CosmosDB вложенная структура JSON - PullRequest
1 голос
/ 10 мая 2019

Я использую CosmosDB SQLAPI для одного из наших приложений.Я запрашиваю с помощью Azure Storage Explore.Структура 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

Окно редактирования JSON CosmosDB Quering

Окно обозревателя хранилищ Azure пытается выполнить запрос

Запрос работает без условия where

Ответы [ 2 ]

0 голосов
/ 12 мая 2019

SQL

select value array(select value z.ID from z in a.Elements)
from c
join b in c.data
join a in b

Результат

[
    [
        11,
        16,
        3,
        5
    ],
    [
        486,
        492
    ]
]
0 голосов
/ 10 мая 2019

Вам нужно использовать соединение, когда вы запрашиваете данные вложенного массива, попробуйте этот 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)
...