В 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 теперь показывают это: