当前位置: 首页 > 知识库问答 >
问题:

为什么我的Azure Cosmos DB SQL API容器拒绝使用相同分区键值的多个项?

卞昀
2023-03-14

在Azure Cosmos DB(SQL API)中,我创建了一个容器,它的“分区键”设置为/part_key,现在我正在尝试在data Explorer中创建和编辑数据。

{
    "id": "test_id",
    "value": "val000",
    "magicNumber": 32,
    "part_key": "asdf"
}
{
    "id": "frank",
    "value": "val001",
    "magicNumber": 33,
    "part_key": "asdf"
}
{"code":409,"body":{"code":"Conflict","message":"Entity with the specified id already exists in the system...

我看到,如果将part_key的值更改为其他值(例如asdf2),则可以保存这个新项。

要么我对这个功能的期望是错误的,要么我在某种程度上做错了。这里怎么了?

共有1个答案

米修平
2023-03-14

您的理解是正确的,如果您试图使用id等于现有文档id的新文档,可能会发生这种情况。这是不允许的,因此操作失败。

在插入修改后的副本之前,需要为其分配一个新id。我测试了这个场景,它看起来很好。可能会尝试创建一个新文档并检查

 类似资料:
  • 我们使用的是Cosmos DB SQL API,下面是一个集合: 大小:无限 吞吐量:50000 RU/s PartitionKey:散列 我们将插入200,000条记录,每个记录的大小为2.1KB,并且分区键列的值相同。据我们所知,具有相同分区键值的所有文档都存储在同一个逻辑分区中,无论我们是在固定大小的集合还是在无限大小的集合中,逻辑分区都不应超过10 GB的限制。 显然,我们的总数据甚至不到

  • 为什么它不打印“processTextPosition:ContainsKey”?

  • 我正在使用AWS kinesis和lambda开发一个实时数据管道,我试图弄清楚如何确保来自相同数据生产者的记录由相同的碎片处理,并最终由相同的lambda函数实例处理。 我的方法是使用分区键来确保来自相同生产者的记录由相同的碎片处理。但是,我不能让同一碎片中的记录由同一lambda函数实例处理。 基本设置如下: null 分区键用于在流中按碎片对数据进行分组。Kinesis Data Strea

  • 我写了一段代码,对给定的输入进行排序,但在返回排序后的输入后,它将始终返回相同的输出。我正在使用创建控制台应用程序。Visual Studio中的NET 5.0(当前版本)。 当我输入“Car-Apple-Banana”时,它会按单词排序。排序() 之后,我打印出原始输入,但它似乎也被排序。我不知道为什么,因为我从不分类。 当输入为:“汽车苹果香蕉” 我现在得到的输出是: 苹果香蕉车 苹果香蕉车

  • 环境: Python 3.7.5 烧瓶1.1.2 托管公司:Ionos 类型:带有Plesk面板的ubuntu上的VPS。 Ubuntu 18.04.5 LTS,代号:仿生 我有一个网站域名。通用域名格式。例如,我需要子域“dashboard.domain.com”上的仪表板。我的服务器是一个虚拟服务器,使用“虚拟主机”和apache作为我在这个VPS上的所有域名。我正试图在带有子域的ubuntu