C#Cosmos Db在创建之前检查文件是否存在

时间:2019-03-19 11:40:26

标签: c# azure-cosmosdb

我有这种方法:

public async Task SaveAsync(IEnumerable<JObject> models)
{
    foreach (var document in models)
    {
        var collectionLink = UriFactory.CreateDocumentCollectionUri(_databaseName, _collectionName);
        await _client.CreateDocumentAsync(collectionLink, document);
    }
}

一次创建多个文档时可以,但是如果我的文档的ID与数据库中已有的ID相同,则会出现错误:

  

具有指定ID的实体已存在于系统中。

由于该文档实际上是不同的,所以我不确定是否可以检查该文档是否存在。

是否可以用新实体替换现有实体?

1 个答案:

答案 0 :(得分:1)

您可以使用DocumentClient.UpsertDocumentAsync代替CreateDocumentAsync来创建新文档或更新现有文档,例如:

await _client.UpsertDocumentAsync(collectionLink, document);