MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

mongodb TTL non funziona

Quando crei l'indice TTL in primo piano (come hai fatto tu), MongoDB inizia a rimuovere i documenti scaduti non appena l'indice finisce di costruire. Meglio tail -f mongod.log durante la creazione dell'indice per monitorare lo stato di avanzamento. Potresti voler rimuovere e ricreare l'indice se qualcosa è andato storto.

Se l'indice è stato creato in background, il thread TTL può iniziare a eliminare i documenti durante la creazione dell'indice.

Il thread TTL che rimuove i documenti scaduti viene eseguito ogni 60 secondi.

Se è stato creato un indice sulla replica che è stato rimosso dal set di repliche ed è in esecuzione in modalità autonoma, l'indice verrà creato ma i documenti NON verranno rimossi fino a quando non si accede nuovamente alla configurazione (o si rimuove il set di repliche). Se questo è il caso, potresti ottenere qualcosa di simile a questo nel 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