Вставка документов с одинаковым значением ключа раздела и разными значениями «id»

#azure #azure-cosmosdb #azure-cosmosdb-sqlapi

#azure #azure-cosmosdb #azure-cosmosdb-sqlapi

Вопрос:

Мне нужно вставить новый документ, когда ему присвоен новый «id», но ключ раздела совпадает с ключом раздела существующего документа. Однако это дает мне исключение DocumentClientException. Почему это так? Разве я не должен иметь несколько документов с одинаковым значением ключа раздела?

Это выдает мне эту ошибку, хотя на самом деле я даю ему новый «id», который еще не существует.

 com.microsoft.azure.documentdb.DocumentClientException: Entity with the specified id already exists in the system., 
RequestStartTime: 2019-04-11T15:36:19.7657781Z, RequestEndTime: 2019-04-11T15:36:19.7657781Z, Number of regions attempted: 1
ResponseTime: 2019-04-11T15:36:19.7657781Z, StoreResult: StorePhysicalAddress: rntbd://sn4prdapp19-docdb-1.documents.azure.com:14030/apps/59d3b9ef-17ca-4bbf-8a11-39d0199a8d29/services/27f87c68-85a5-44ec-b1cf-bfc46347392b/partitions/6ddeca7e-1056-4ed7-b70f-5472223dde1c/replicas/131974948271521006p/, LSN: 495, GlobalCommittedLsn: 495, PartitionKeyRangeId: 0, IsValid: True, StatusCode: 409, SubStatusCode: 0, RequestCharge: 1.57, ItemLSN: -1, SessionToken: 0#495#4=-1, UsingLocalLSN: False, TransportException: null, ResourceType: Document, OperationType: Create
, Microsoft.Azure.Documents.Common/2.2.0.0, StatusCode: Conflict
  

Комментарии:

1. Фактором уникальности является комбинация id и значение ключа раздела. Пока у вас нет более одного документа с этой комбинацией, у вас не должно возникнуть конфликта.

2. У меня возник конфликт при вставке нового «id», но существующего ключа раздела, но это было связано с тем, что отдельное уникальное поле вызывало проблему

Ответ №1:

Проблема заключалась в том, что отдельное поле определялось как уникальное в коллекции