Как отфильтровать данные Cosmos DB по значению элемента в массиве значений с помощью SQL API - PullRequest
0 голосов
/ 26 июня 2019

У меня есть коллекция cosmosDB с данными ниже.Мне нужно найти данные только для СОБЫТИЯ с именем ABC и его значения с помощью SQL-запроса.

[
    {
        "ID": "01XXXXX",
        "EVENTS": [
            {
                "Name": "ABC",
                "Value": 0
            },
            {
                "Name": "XYZ",
                "Value": 4
            },
           {
                "Name": "PQR",
                "Value": 5
            }
           ]
       },
       {
        "ID": "02XXXXX",
        "EVENTS": [
            {
                "Name": "ABC",
                "Value": 1
            },
            {
                "Name": "XYZ",
                "Value": 2
            },
           {
                "Name": "PQR",
                "Value": 3
            }
           ]
       }
    ]

Я пробовал приведенный ниже код, но он не работает, так как СОБЫТИЕ является массивом.

SELECT * FROM c where c.EVENTS.Name = 'ABC'

Есть ли способ найти отфильтровать данные только с именем события как ABC, используя SQL?

1 Ответ

0 голосов
/ 26 июня 2019

Попробуйте использовать объединение

SELECT c FROM c
 join l in c.EVENTS 
 where l.Name = 'ABC'

enter image description here

...