Why does my Azure Cosmos DB SQL API Container Refuse Multiple Items With Same Partition Key Value?

443 Views Asked by At

In Azure Cosmos DB (SQL API) I've created a container whose "partition key" is set to /part_key and I am now trying to create and edit data in Data Explorer.

I created an item that looks like this:

{
    "id": "test_id",
    "value": "val000",
    "magicNumber": 32,
    "part_key": "asdf"
}

I am now trying to create an item that looks like this:

{
    "id": "frank",
    "value": "val001",
    "magicNumber": 33,
    "part_key": "asdf"
}

Based on the documentation I believe that each item within a partition key needs a distinct id, which to me implies that multiple items can in fact share a partition key, which makes a lot of sense.

However, I get an error when I try to save this second item:

{"code":409,"body":{"code":"Conflict","message":"Entity with the specified id already exists in the system...

I see that if I change the value of part_key to something else (say asdf2), then I can save this new item.

Either my expectations about this functionality are wrong, or else I'm doing this wrong somehow. What is wrong here?

1

There are 1 best solutions below

4
On BEST ANSWER

Your understanding is correct, It could happen if you are trying to instead a new document with id equal to id of the existing document. This is not allowed, so operation fails.

Before you insert the modified copy, you need to assign a new id to it. I tested the scenario and it looks fine. May be try to create a new document and check