ReadItemAsync Cosmos DB

问题描述

我有一个带有以下字段(id,Category,Type)的cosmos db容器。 分区键为类别。在使用以下查询时,我还需要传递分区键。 但是我只有ID值。如何使用ReadItemAsync执行操作?我找不到错误

private async Task<T> GetItem(string id)
        {
            
                ItemResponse<T> response = await this.MainContainer.ReadItemAsync<T>(id,new PartitionKey(id));
                return response.Resource;
         }

解决方法

如果您不知道分区键的值,则可以改用append

GetItemQueryable
,

如果仅具有该项目的ID,并且这是一个高容量查询,则您可能需要探索此容器的新分区策略。但是,如果确实有大量使用类别的读取,则可以考虑使用变更供稿来保留数据的两个副本,并找到另一个可用作分区键的属性。如果id在您的应用程序中是全局唯一的,那么也可以使用它。