C# 创建无分区集合时,已设置的吞吐量集合应具有分区键错误

C# 创建无分区集合时,已设置的吞吐量集合应具有分区键错误,c#,azure-cosmosdb,C#,Azure Cosmosdb,我创建了一个文档db数据库,RU在db级别而不是容器级别共享。是否可以在同一数据库下创建不带分区的集合?当我尝试对下面的代码执行相同的操作时,我得到一个错误 已设置的吞吐量集合应具有分区密钥 在我这方面重现您的问题,它表明如果没有分区密钥,我们无法创建已配置的吞吐量集合。因为db级别的吞吐量设置将在所有内部共享 收藏: 请参阅此部分以了解有关设置db级别或容器级别吞吐量的选择。如果要创建几个分区集合和几个非分区集合,可以尝试将其设置为集合级别 一些关键声明: 为单个容器提供吞吐量将保证 为特定

我创建了一个文档db数据库,RU在db级别而不是容器级别共享。是否可以在同一数据库下创建不带分区的集合?当我尝试对下面的代码执行相同的操作时,我得到一个错误

已设置的吞吐量集合应具有分区密钥


在我这方面重现您的问题,它表明如果没有分区密钥,我们无法创建已配置的吞吐量集合。因为db级别的吞吐量设置将在所有内部共享 收藏:

请参阅此部分以了解有关设置db级别或容器级别吞吐量的选择。如果要创建几个分区集合和几个非分区集合,可以尝试将其设置为集合级别

一些关键声明:

为单个容器提供吞吐量将保证 为特定Cosmos DB容器预留吞吐量(即。, 由的吞吐量SLA支持的表、集合或图形) 那个集装箱。这允许您对 容器在任何给定时间点的吞吐量。在…上 另一方面,在Cosmos DB数据库上提供吞吐量, 允许您在需要的所有容器之间共享吞吐量 属于那个数据库。这允许您将已配置的资源集中在一起 Cosmos DB数据库中一组容器的吞吐量


我同意吞吐量是共享的。在我的例子中,我想要一个非分区集合。可能是我对分区和吞吐量共享的理解有误。@ArjunMenon如果要设置非分区收集,为什么不在收集级别而不是数据库级别设置吞吐量?系统是现有的,对于批量更新,我们在docDB中编写了SP,它与分区收集有一些问题。
private async Task CreatePartitionLessCollection()
{
    try
    {
        DocumentClient documentClient = new DocumentClient(new Uri(EndpointUrl), PrimaryKey);
        DocumentCollection myCollection = new DocumentCollection();
        myCollection.Id = "MyCollection";
        await documentClient.CreateDocumentCollectionAsync(
                UriFactory.CreateDatabaseUri("MyDB"), myCollection, new RequestOptions { OfferThroughput = 400 });
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.GetBaseException().Message);
    }
 }