Удалить документ, когда ключ раздела становится дочерней строкой c# cosmos DB - PullRequest
0 голосов
/ 09 апреля 2020

У меня есть коллекция с JSON Документом

{
"type": "OrderHistory",
"values": [
    {       
        "CustomerId": "8990",
        "DeliveryInstructions": "",
        "UpdateDate": "2020-02-07T14:33:50",
        "OrderId": "00716",

        "Items": [
            {
                "ProductId": "402",

            }
        ],
        "id": "0071661617+Settled"
    }
],
"id": "c57ab11a-2aec-45a4-a3e8-063598e15061",
"_rid": "9-kVAPFOVXkBAAAAAAAAAA==",
"_self": "dbs/9-kVAA==/colls/9-kVAPFOVXk=/docs/9-kVAPFOVXkBAAAAAAAAAA==/",
"_etag": "\"35008246-0000-0200-0000-5e8dc41a0000\"",
"_attachments": "attachments/",
"_ts": 1586349082
}

Дело в том, что здесь CustomerId является ключом разделения. Мы должны удалить записи на основе условий. Я использовал метод ниже для удаления записей, который работает нормально с нормальным json, у которого нет childrows.May может быть потому, что значение parition является значением childrow, оно не работает должным образом. Ключ раздела отображается как дочерний ряд. Заранее спасибо.

1 Ответ

0 голосов
/ 09 апреля 2020

Ваш вышеописанный метод выглядит аналогично, ниже метод работает для меня.

Удалить документ с partitionKey

public virtual async Task<bool> DeleteAsync(string databaseId, string collectionId, string id, string partitionKey)
    {
        await client.DeleteDocumentAsync(UriFactory.CreateDocumentUri(databaseId, collectionId, id), new RequestOptions { PartitionKey = new PartitionKey(partitionKey) });
        return true;
    }

Удалить документ без partitionKey

public virtual async Task<bool> DeleteAsync(string databaseId, string collectionId, string id)
    {
        await client.DeleteDocumentAsync(UriFactory.CreateDocumentUri(databaseId, collectionId, id));
        return true;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...