查询cosmosDB:获取数组中的最后一个元素

Loa*_* NT 4 azure azure-cosmosdb

我有这样的文件:

    { "id": ....,
    "Title": ""title,
    "ZipCodes": [
            {
                "Code": "code01",
                "Name": "Name01"
            },
            {
                "Code": "code02",
                "Name": "Name02"
            },
            {
                "Code": "code03",
                "Name": "Name03"
            } ],
"_rid": .......,
"_self": .......,
"_etag": ......,
"_attachments": "attachments/",
"_ts": ......
Run Code Online (Sandbox Code Playgroud)

我习惯于指挥

select c.id, c.ZipCodes[ARRAY_LENGTH (c.ZipCodes) -1] as ZipCodes from c
Run Code Online (Sandbox Code Playgroud)

但我收到错误,如何查询 cosmos DB 中的最后一个元素 ZipCodes。

Mar*_*ith 7

您可以用于ARRAY_SLICE此用途。传递时-1,它返回一个包含原始数组最后一个元素的数组。然后对其进行索引以[0]获取包含的单个元素(即邮政编码本身。)

SELECT c.id, 
       ARRAY_SLICE(c.ZipCodes,-1)[0] AS LastZipCode
FROM c
Run Code Online (Sandbox Code Playgroud)