MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wann läuft ein Mongodb-Dokument ab, nachdem es aktualisiert wurde?

Die richtige Antwort ist c)

Die Eigenschaft expireAfterSeconds erfordert immer einen Index auf ein Feld, das ein BSON-Datum enthält, da der Inhalt dieses Datumsfelds verwendet wird, um Einträge zum Entfernen auszuwählen.

Wenn Sie möchten, dass ein Dokument aktualisiert wird, um die Gültigkeitsdauer zurückzusetzen, aktualisieren Sie auch das indizierte Datumsfeld auf die aktuelle Zeit.

Wenn Sie möchten, dass eine Aktualisierung die TTL nicht beeinflusst, aktualisieren Sie einfach nicht das Datum.

Beachten Sie jedoch, dass expireAfterSeconds keine sofortige Löschung des Dokuments garantiert. Die Löschungen werden von einem Hintergrundjob durchgeführt, der jede Minute ausgeführt wird. Dieser Job hat eine niedrige Priorität und kann von MongoDB verschoben werden, wenn die aktuelle Last hoch ist. Wenn es also für Ihren Anwendungsfall wichtig ist, dass die Ablaufzeiten sekundengenau eingehalten werden, sollten Sie eine zusätzliche Prüfung auf Anwendungsebene hinzufügen.

Diese Funktion ist hier dokumentiert:http://docs.mongodb.org/manual/ tutorial/ablaufdaten/