Нет, индекс TTL не содержит условной логики, кроме if field < now - expireAfterSeconds then delete document
.
Однако может возникнуть обходное решение, которое может работать в вашей ситуации: когда у вас есть конкретная дата в будущем, вы хотите, чтобы ваш документ истекал, вы можете добавить поле expireDate
, которое вы установили в будущем в будущем, когда вы хотите, чтобы документ истекал. Когда вы создадите индекс с expireAfterSeconds
до 0, каждый документ будет удален, когда его expireDate
пройдет. Этот трюк позволяет вам иметь документы с разными TTL в одной коллекции.