Не удалось создать документ в Azure Cosmos-db с помощью пакета SDK для Android для Azure

Я использую Azure SDK для Android для добавления новых записей в элементы коллекции. У нас нет ключей разделов для нашей cosmos-DB. поэтому я передаю его как null.

это даст мне ошибку ниже

ключ раздела, указанный в заголовке x-ms-partitionkey, содержит меньше компонентов, чем определено в коллекции.

Может ли кто-нибудь помочь мне выбраться из этого?


person Karan Ekkawala    schedule 14.11.2019    source источник
comment
Было бы полезно, если вы отредактируете свой вопрос, чтобы он содержал более подробную информацию, например код, который вы написали для вставки данных в Cosmos DB. Тем не менее: вы не можете создать коллекцию без ключа раздела (вы можете указать /id, поскольку это свойство всегда существует, но ... вам нужно указать something при создании вашей коллекции).   -  person David Makogon    schedule 14.11.2019
comment
@Karan Ekkawala, эта проблема решена?   -  person Ali    schedule 21.01.2020
comment
Рад вас видеть, да, я решил эти проблемы, назначив ключ раздела, как указано в комментариях ниже. Дай мне знать, если я смогу тебе еще помочь.   -  person Karan Ekkawala    schedule 21.01.2020


Ответы (2)


Вам нужно пометить свойство, которое вы используете в качестве ключа раздела, с помощью аннотации @PartitionKey, например:

@PartitionKey
    var testKey = ""

в C # мы используем Undefined.Value, и все будет хорошо.

client.DeleteDocumentAsync(
          UriFactory.CreateDocumentUri(DbName, CollectionName, id), 
          new RequestOptions() { PartitionKey = new PartitionKey(Undefined.Value) });
person Sajeetharan    schedule 14.11.2019
comment
Спасибо @Sajeetjaran, но у нас нет возможности в android установить ключ-значение раздела как undefined, но у нас есть другой метод, в котором мы можем передать ключ-значение раздела, но это TypeOf (String), который создаст для нас . пытаясь переопределить методы SDK, дайте увидеть надежду на лучшее, чтобы получить результат - person Karan Ekkawala; 14.11.2019

Для лазурного Android SDK требуется ключ раздела, он не принимает пустые или пустые значения. Кроме того, если у вас есть набор записей для хранения в базе данных cosmos DB, вы должны использовать ключ раздела, иначе вы можете столкнуться с проблемой ограничения ключа раздела в будущем. Azure предоставляет максимум 10 ГБ для логического раздела.

Я создал новую коллекцию с пользовательским разделом и передал значение ключа раздела, например. patitionKey = /. UserID в моем объекте. это сработает для меня. Также управление проблемой ограничения ключа раздела.

так что будет хорошо использовать ключ раздела заранее, чтобы избежать проблемы в будущем.

person Karan Ekkawala    schedule 06.12.2019