Назовите первичный ключ контейнера в Cosmbos DB Sql Api, отличный от "id" - PullRequest
1 голос
/ 03 марта 2020

Я работаю над Azure и создал базу данных с API Cosmos DB SQL. После создания контейнера я вижу, что первичный ключ всегда называется «id». Есть ли способ создать контейнер с PK с именем, отличным от «id»?

Ответы [ 2 ]

4 голосов
/ 03 марта 2020

Каждый документ имеет уникальный идентификатор, который называется id. Это не может быть изменено. Если вы не установите значение, ему присваивается GUID.

При использовании таких методов, как ReadDocument() (или эквивалент, основанный на SDK) для прямого чтения вместо запросов, документ id свойство должно быть указано.

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

И если у вас есть дополнительные Специфичные для домена c идентификаторы (возможно, номер детали), вы всегда можете сохранить их в своих свойствах. В этом примере, однако, просто помните, что, хотя вы можете запрашивать для документов, содержащих указанный номер детали c, вы можете выполнять прямое чтение только через id. Если прямое чтение будет являться большинством ваших операций чтения, то стоит рассмотреть возможность использования id для хранения такого значения.

2 голосов
/ 03 марта 2020

PK = первичный ключ, кстати;) Это "основной" ключ для записи, он не является личным:)

И нет, насколько я знаю, вы не можете изменить имя первичного ключа , Это всегда «id». В частности, он должен быть в нижнем регистре, "Id" не принимается.

...