首页 > 解决方案 > Azure Cosmos 查询转换为列表

问题描述

这是我的 JSON 数据,存储在 cosmos db 中

{
    "id": "e064a694-8e1e-4660-a3ef-6b894e9414f7",
    "Name": "Name",
    "keyData": {
        "Keys": [
            "Government",
            "Training",
            "support"
        ]
    }
}

现在我想写一个查询来消除keyData并只得到Keys(如下所示)

{
    "userid": "e064a694-8e1e-4660-a3ef-6b894e9414f7",
    "Name": "Name",
    "Keys"  :[
        "Government",
        "Training",
        "support"
    ]
}

到目前为止,我尝试了这样的查询

SELECT c.id,k.Keys  FROM c
JOIN k in c.keyPhraseBatchResult 

这是行不通的。

更新1:

现在尝试使用Sajeetharan后,我可以得到结果,但问题是它在数组中产生了另一个 JSON。

{
    "id": "ee885fdc-9951-40e2-b1e7-8564003cd554",
    "keys": [
        {
            "serving": "Government"
        },
        {
            "serving": "Training"
        },
        {
            "serving": "support"
        }
    ]
}

有没有什么方法可以只提取 Array 而没有key valuepari 呢?

{
    "userid": "e064a694-8e1e-4660-a3ef-6b894e9414f7",
    "Name": "Name",
    "Keys"  :[
        "Government",
        "Training",
        "support"
    ]
} 

标签: listazureazure-cosmosdb

解决方案


这个可以试试

SELECT C.id, ARRAY(SELECT VALUE serving FROM serving IN C.keyData.Keys) AS Keys FROM C 

推荐阅读