【问题标题】:How to keep document creation idempotent in azure-cosmosdb (Document DB)?如何在 azure-cosmosdb (Document DB) 中保持文档创建幂等性?
【发布时间】:2019-12-05 10:15:23
【问题描述】:

我想用 azure cosmos DB 实现创建文档的幂等性。如果 cosmos-db(document db) 开箱即用,请告诉我。

我正在为此使用 SQL api。

【问题讨论】:

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


    【解决方案1】:

    是的,这可以通过使用 Upsert 功能来实现。

    一种可能性是创建这样的文档:

    var client = new CosmosClient(endpointUrl, primaryKey, clientOptions);
    var container = client.GetContainer(databaseName, containerName);
    
    var transactionalBatch = container.CreateTransactionalBatch(new PartitionKey(document.pk));
    transactionalBatch.UpsertItem(document);
    
    await transactionalBatch.ExecuteAsync();
    

    通过使用 UpsertItem 而不是 CreateItem 功能,您可以多次执行同一个批处理而不会导致更改,除非您更改文档。

    此示例适用于 Cosmos Db V3,更多示例可在此处找到:https://github.com/Azure/azure-cosmos-dotnet-v3

    【讨论】:

      猜你喜欢
      • 2019-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多