TTL по документу с API Cosmos Db Mongo - PullRequest
0 голосов
/ 23 мая 2018

В Cosmos Db я использую уровень документа Time to Live (TTL), а Cosmos, похоже, не имеет срока действия.Работает ли эта функция в Cosmos Db с использованием MongoDB API?Если да, то чего мне не хватает?

  • Я использую Cosmos Db с MongoDB API.
  • Поле "ttl" установлено в каждом документе для моей коллекции.
  • В Azure для моей коллекции для параметра Время жизни установлено значение «Вкл. (Без значения по умолчанию)».
  • Я делаю это без эмулятора, поскольку по умолчанию эмулятор использует API SQL.В эмуляторе я вижу набор «_ts» и не вижу этого поля в Azure.
  • Я могу переключиться на истечение срока действия уровня сбора, установив для параметра «Время» значение «Вкл.», И срок действия документов истекает, как и ожидалось.Когда я это делаю, мое поле «ttl» игнорируется, и за ним следует значение, которое я установил для «second (s)» в Azure.Я все еще вижу свое поле "ttl" в документе.

Хотя я не вижу поля "_ts" в моих документах, в статье об индексировании упоминается, что это зарезервированное свойство.Это заставляет задуматься о том, что оно негласно и не возвращается в запросах.

https://docs.microsoft.com/en-us/azure/cosmos-db/mongodb-indexing "_ts - это поле, специфичное для БД Cosmos, и недоступно для клиентов MongoDB. Это зарезервированное (системное) свойство, которое содержит метку времени последнего изменения документа. "

Обновление: Я проверил страницу поддержки MongoDB (https://docs.microsoft.com/en-us/azure/cosmos-db/mongodb-feature-support)и это указывает, что TTL уровня сбора доступен и ничего не говорит об уровне документа.

Azure Cosmos DB поддерживает относительное время жизни (TTL), основанное на отметке времени документа. TTL может бытьвключено для коллекций API MongoDB через портал Azure.

Обновление: Функции предварительного просмотра портала My Azure теперь показывают это: Cosmos DB Preview Features

1 Ответ

0 голосов
/ 03 июля 2018

Я получил документ уровня Time to Live, работающий в Cosmos Db с использованием MongoDb API.Я должен был попросить помощи от поддержки Microsoft, чтобы заставить это работать.Ответ от команды Microsoft Big data был следующим:

Прежде чем включить функцию TTL на уровне документа, я хотел бы уточнить следующее здесь о деталях функции TTL для документа.

Функция TTL контролируетсяСвойства TTL на двух уровнях - уровень сбора и уровень документа.

В настоящее время для уровня документа TTL для учетных записей MongoDB по умолчанию недоступны.Тем не менее, мы можем включить эту функцию для определенных клиентов, и эта функция установлена ​​на уровне учетной записи.

TTL находится на уровне документа, но эта функция включена на уровне учетной записи, что означает для всех коллекций под учетной записью,если есть документ с установленным TTL, он вступит в силу.Для других коллекций, если значение TTL не задано для каждого документа, это не будет затронуто.

Для работы необходимо иметь индекс в поле _ts.

Для подведения итоговэто: - Эта функция работает на уровне учетной записи Cosmos DB.Нам нужно включить функцию Document TTL в серверной части Cosmos DB.

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