【发布时间】:2019-12-05 10:15:23
【问题描述】:
我想用 azure cosmos DB 实现创建文档的幂等性。如果 cosmos-db(document db) 开箱即用,请告诉我。
我正在为此使用 SQL api。
【问题讨论】:
标签: azure azure-cosmosdb azure-cosmosdb-sqlapi
我想用 azure cosmos DB 实现创建文档的幂等性。如果 cosmos-db(document db) 开箱即用,请告诉我。
我正在为此使用 SQL api。
【问题讨论】:
标签: azure azure-cosmosdb azure-cosmosdb-sqlapi
是的,这可以通过使用 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
【讨论】: