Как извлечь элемент массива из указанной позиции c в документе CosmosDB? - PullRequest
0 голосов
/ 06 января 2020

Предположим, у меня есть документ со следующей структурой,

{
    "VehicleDetailId": 1,
    "VehicleDetail": [
        {
            "Id": 1,
            "Make": "BMW"
        },
        {
            "Id": 1,
            "Model": "ABDS"
        },
        {
            "Id": 1,
            "Trim": "5.6L/ASMD"
        },
        {
            "Id": 1,
            "Year": 2008
        }
    ]
}

Теперь я хочу получить элемент массива, расположенный в указанном c положении из VehicleDetail массив, как я хочу получить второй элемент, т. Е.

{
    "Id": 1,
    "Model": "ABDS"
}

или третий,

{
    "Id": 1,
    "Trim": "5.6L/ASMD"
}

Как мне написать запрос для достижения этого?

1 Ответ

1 голос
/ 06 января 2020

Используйте встроенную функцию ARRAY_SLICE . Это позволяет вам выбрать часть массива.

Передать массив, начальную позицию, количество элементов для выбора.

SELECT ARRAY_SLICE(c.VehicleDetail, 1, 1) As SecondElement
FROM c

Вывод:

{
    "SecondElement": [
        {
            "Id": 1,
            "Model": "ABDS"
        }
    ]
}
...