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

mongodb TTL funktioniert nicht

Wenn Sie einen TTL-Index im Vordergrund erstellen (wie Sie es getan haben), beginnt MongoDB mit dem Entfernen abgelaufener Dokumente, sobald der Index fertig erstellt ist. Am besten tail -f mongod.log während der Indexerstellung, um den Fortschritt zu verfolgen. Möglicherweise möchten Sie den Index entfernen und neu erstellen, wenn etwas schief gelaufen ist.

Wenn der Index im Hintergrund erstellt wurde, kann der TTL-Thread mit dem Löschen von Dokumenten beginnen, während der Index erstellt wird.

TTL-Thread, der abgelaufene Dokumente entfernt, wird alle 60 Sekunden ausgeführt.

Wenn Sie einen Index für das Replikat erstellt haben, das aus dem Replikatsatz entfernt wurde und im eigenständigen Modus ausgeführt wird, WIRD ein Index erstellt, aber Dokumente werden NICHT entfernt, bis Sie der Konfiguration wieder beitreten (oder den Replikatsatz entfernen). Wenn dies der Fall ist, erhalten Sie möglicherweise etwas Ähnliches in mongod.log

** WARNING: mongod started without --replSet yet 1 documents are ** present in local.system.replset ** Restart with --replSet unless you are doing maintenance and no other ** clients are connected. ** The TTL collection monitor will not start because of this. ** For more info see http://dochub.mongodb.org/core/ttlcollections