我想更新CosmosDB中的文档,为此,我首先检索文档并将其转换为类型化的对象,如下所示:
public async Task<T> ReadRawAsync(Expression<Func<T, bool>> predicate)
{
var query = _client
.CreateDocumentQuery<T>(_uri)
.Where(predicate)
.AsDocumentQuery();
var results = new List<T>();
while (query.HasMoreResults)
results.AddRange(await query.ExecuteNextAsync<T>());
return results.FirstOrDefault();
}
经过一些转换后,我想更新(替换)该文档:
await _client.ReplaceDocumentAsync(_uri, document);
我不确定这是否可以通过这种方式完成。您能否指出进行此类更新所需的条件?
答案 0 :(得分:1)
ReplaceDocumentAsync
仅在document
具有名为id
的属性时才有效(请注意,小写字母需要序列化为小写id,因此您可能需要JsonProperty(“ id “)),并且此ID中的文档必须存在于集合中。
如果您的集合已分区,则需要在此方法中提供下一个对象RequestOptions
,并在其中添加此文档的PartitionKey值。