Значение ключа раздела можно указать, указав для объекта RequestOptions
значение PartitionKey
.
Строка создания документа будет иметь вид:
var requestOptions = new RequestOptions{
PartitionKey = new PartitionKey("yourPartitionKeyValueHere");
}
result = await _db.Client.CreateDocumentAsync(UriFactory.CreateDocumentCollectionUri(_db.Options.Value.DatabaseName, _db.Options.Value.CollectionName), document, requestOptions);
Однако это так и естьдолжно быть, вы не понимаете разбиение CosmosDB, а это означает, что вы можете попасть в очень глубокую ловушку.
Определение ключа раздела должно быть свойством, которое в большинстве случаев, если не всегда, вам известно, когда вы делаетеЗапрос или чтение документов.
Я настоятельно рекомендую вам посмотреть это видео.Это очень поможет вам разобраться с разделением: https://azure.microsoft.com/en-us/resources/videos/azure-documentdb-elastic-scale-partitioning/
В примечании к сторонним сведениям я вижу несколько ошибок в использовании CosmosDB SDK, которые я не могу исправить в одном ответе.Например, в CosmosDB SDK уже есть логика для обработки логики политики повторов на уровне клиента документа через объект RetryOptions
, поэтому вам не нужно писать какой-либо пользовательский код.Я бы посоветовал вам прочитать больше документации по CosmosDB.