Explica cómo los índices TTL eliminan documentos según fechas, qué retrasos y límites tienen y cuándo sirven para sesiones, eventos o datos temporales.
Un TTL index elimina documentos automáticamente después de que un campo de tipo Date supera una política de expiración. La eliminación la realiza un proceso interno periódico, por lo que es , no exacta al milisegundo.
Datos temporales como sesiones, tokens, caches o eventos efímeros necesitan limpieza continua. Sin TTL, la aplicación debe ejecutar jobs, mantener checkpoints y gestionar borrados.
TTL simplifica la retención técnica cuando la única acción necesaria es eliminar eventualmente el documento.
Existe una carrera entre renovación y monitor TTL si el documento ya está vencido. La aplicación debe tolerar que haya sido eliminado y crear una sesión nueva cuando corresponda.
El delete generado se replica a secondaries. Una gran acumulación de documentos vencidos puede producir carga de deletes, oplog y lag.
Al reducir drásticamente expireAfterSeconds en una colección grande, muchos documentos pueden quedar vencidos al mismo tiempo. Planifica purga por batches antes del cambio.
Time series collections soportan políticas de expiración específicas. La configuración y capacidades dependen de versión. No asumas que un TTL normal y una time series se administran igual.
Versiones modernas soportan combinaciones específicas de TTL parcial en ciertos contextos. Debes confirmar versión, FCV y restricciones antes de usarlo. No documentes como universal una capacidad reciente.
Los deletes TTL pueden aparecer en Change Streams como eliminaciones. No dependas de la puntualidad para disparar negocio. Además, el evento puede no contener el documento completo sin opciones adicionales.
Documentos expirados pueden permanecer en backups creados antes del delete. La política de privacidad y retención debe contemplar backups y restores.
Restaurar un backup puede reintroducir documentos ya vencidos; el monitor los eliminará posteriormente, pero la aplicación debe filtrar por fecha desde el primer momento.
TTL es una política de limpieza eventual basada en fechas BSON. Reduce mantenimiento para datos efímeros, pero no reemplaza validación de expiración, scheduler, eventos de dominio ni políticas de backup. Su impacto operacional crece cuando muchos documentos vencen juntos.
Comprueba lo aprendido
¿Por qué la aplicación debe filtrar expiresAt?
¿Qué diferencia existe entre fecha individual y duración?
¿Por qué TTL no sirve para cancelar una orden exactamente?