Использование Cosmos DB, как мне запросить только по ключу раздела - PullRequest
0 голосов
/ 10 мая 2018

У нас есть группа связанных документов, имеющих общий ключ раздела. Мысль о том, чтобы просто сгруппировать их, должна быть в случае запроса ключа раздела и соединения их вместе. Что мне не хватает?

Так Выберите * из c, где c.CustomerId = "500"

Возвращает, скажем, 3 документа: Адрес, Продажи и Счета-фактуры, у всех из которых есть свойство с именем CustomerId со значением 500.

Я ценю, что это не первичный ключ, и я намеренно опускаю ключ строки.

Возможно, ответом является не разделение документов, но тогда разные документы имеют разные TTL, и тогда это станет проблематичным, не так ли (

CustomerId - это ключ раздела.

В документах MS говорится, что это возможно (приводя пример города = Сиэтла). Где их разделительная клавиша - город ....

Итак, что я упускаю, полное неверное обоснование запросов - это космос? (я могу сказать, что знаю, что ключ разбиения используется для разбиения связанных данных на разделы). Я не знал, что это сделало его несомненным аспектом.

Также я не могу запросить с ключом раздела и ключом строки.

РЕДАКТИРОВАТЬ 2:

Это работает:

ВЫБРАТЬ * ОТ c ГДЕ c.CustomerId> "499" И c.CustomerId <"501" </p>

1 Ответ

0 голосов
/ 11 мая 2018

Хорошо,

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

Что я прочитал, так это то, что PartitionKey все равно неявно индексируется. Был также индекс на это ТАКЖЕ, так что, возможно, это было причиной смешного.

Правила индексирования CosmosDB

...