Космос БД.Я хочу, чтобы все мои данные были в одной коллекции.Могу ли я достичь этого с неограниченной коллекцией? - PullRequest
0 голосов
/ 21 ноября 2018

В данный момент я использую фиксированную базу данных Cosmos DB 10 Гб, где я сохраняю все свои данные в одной коллекции.Я хочу продолжить этот путь.Так что мне просто нужно создать неограниченную коллекцию.Когда я делаю это, он запрашивает ключ партиции, который я не совсем понимаю, для чего он нужен.Я пытался прочитать об этом, но не очень умный.Надеюсь, вы, ребята, можете мне помочь.

Сегодня я создаю такие документы.Должно ли это быть сделано по-другому, если используется неограниченный сбор.Подумываете, должен ли я где-нибудь объявить ключ партиции?

1004 *

1 Ответ

0 голосов
/ 21 ноября 2018

Значение ключа раздела можно указать, указав для объекта 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...