CosmosDB SqlQuery | Получить несколько данных из массива на основе условий и отображения в массиве - PullRequest
0 голосов
/ 23 января 2020

У меня есть документ, как показано ниже

{ 
    "id":"c95ca9e2-81b0-46f6-a3f3-afceccc864c7",
    "entityType":"vehicleStatus",
    "CustomerName":"Holly-anne",
    "facilityId":"7f8663b4-5270-4259-ad33-6646ec33cd42",
    "vehicleId":"e52bed5f-aff4-4b4a-a919-7fb48baf19bc",
    "VehicleDetail":[ 
        { 
            "make":"Audi",
            "model":"R8",
            "trim":"FR49 7663 0686 05ME BTHW ZDY1 465",
            "year":2019

        }
    ],
    "subQueue":[ 
        { 
            "id":3,
            "queueid":2,
            "isLatest":"false",
            "createdBy":"2d3af542-e6a4-4b3b-b93c-01aa06f77a2c"
        },
        { 
            "id":5,
            "queueid":2,
            "isLatest":"true",
            "createdBy":"2d3af542-e6a4-4b3b-b93c-01aa06f77a2c"
        },
        { 
            "id":7,
            "queueid":3,
            "isLatest":"true",
            "createdBy":"2d3af542-e6a4-4b3b-b93c-01aa06f77a2c"
        }
    ]
}

Как мне сделать запрос, чтобы документ отображал только элементы, которые "isLatest": "true". Мне нужно вывести как показано ниже

{ 
    "id":"c95ca9e2-81b0-46f6-a3f3-afceccc864c7",
    "entityType":"vehicleStatus",
    "CustomerName":"Holly-anne",
    "facilityId":"7f8663b4-5270-4259-ad33-6646ec33cd42",
    "vehicleId":"e52bed5f-aff4-4b4a-a919-7fb48baf19bc",
    "VehicleDetail":[ 
        { 
            "make":"Audi",
            "model":"R8",
            "trim":"FR495",
            "year":2019
        }
    ],
    "subQueue":[ 
        { 
            "id":5,
            "queueid":2,
            "isLatest":"true",
            "createdBy":"2d3af542-e6a4-4b3b-b93c-01aa06f77a2c"
        },
        { 
            "id":7,
            "queueid":3,
            "isLatest":"true",
            "createdBy":"2d3af542-e6a4-4b3b-b93c-01aa06f77a2c"
        }
    ]
}

Мне нужно отобразить объекты, которые состоят из isLatest = true. Я понятия не имею, как запросить, чтобы получить ожидаемый результат.

Надеюсь, кто-нибудь может помочь, заранее спасибо.

1 Ответ

0 голосов
/ 27 января 2020

Вы можете попробовать udf для его реализации.

function userDefinedFunction(array){
    var returnArray = [];
    for(var i=0;i<array.length;i++){
        var map = array[i];
        if (map["isLatest"] == "true"){
            returnArray.push(map);
        }
    }
    return returnArray;
}

enter image description here

...