首页 > 解决方案 > CosmosDB SqlQuery | 根据条件从数组中获取多个数据并显示在数组中

问题描述

我有如下文件

{ 
    "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.

标签: azureazure-cosmosdbazure-cosmosdb-sqlapi

解决方案


您可以尝试使用 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;
}

在此处输入图像描述


推荐阅读