从cosmosDB文档的嵌套数组中删除数据

时间:2019-08-05 03:53:15

标签: azure azure-cosmosdb azure-cosmosdb-sqlapi

我的cosmosDB集合中有一些文档。作为需求变更的一部分,应从现有文档中删除一些数据。 cosmosDB集合中的文档结构如下所示。

{
    "IDVALUE": "007999XXXXX",
    "SIGNALS          ": [
        {
            "SIGNAL": "ABC",
            "TIME": 1562064801,
            "VALUE": 520.1
        },
        {
            "SIGNAL": "ABC",
            "TIME": 1562064793,
            "VALUE": 1
        },
        {
            "SIGNAL": "EFG",
            "TIME": 1562064794,
            "VALUE": -33
        },
        {
            "SIGNAL": "EFG",
            "TIME": 1562064795,
            "VALUE": -1
        },
        {
            "SIGNAL": "PQR",
            "TIME": 1562064850,
            "VALUE": 8
        },
        {
            "SIGNAL": "PQR",
            "TIME": 1562064852,
            "VALUE": -14
        },
        {
            "SIGNAL": "XYZ",
            "TIME": 1562064793,
            "VALUE": 168
        },
        {
            "SIGNAL": "XYZ",
            "TIME": 1562064794,
            "VALUE": 180
        }
    ],
    "id": "4be4caff-a33a-7127-2ef6-13fd4df5555",
    "_rid": "TUg6AJtgAAAAA==",
    "_self": "dbs/TUg6AA==/colls/TUg6AJ=/docs/TUg6AJtgSAAAAA==/",
    "_etag": "\"0100d9b7-0000-2300-000-5d0000\"",
    "_attachments": "attachments/",
    "_ts": 1562065035
}

根据要求,我必须从所有文档的嵌套数组中删除一些信号。假设如果我只想从阵列中删除PQR和XYZ,是否可以这样删除? 如果是,该如何实现? 我没有使用任何IDE,仅在Azure门户中进行开发。

1 个答案:

答案 0 :(得分:0)

有两种方法可以实现,

(i)使用CosmosDB Data explorer,您可以删除文档中的子数组,然后单击“更新”

enter image description here

(ii)Cosmos DB现在不支持使用代码进行部分更新。团队似乎正在积极地研究此功能。作为一种替代解决方案,您可以在存储过程中更新整个文档。