MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

mongodb TTL ne fonctionne pas

Lorsque vous créez un index TTL au premier plan (comme vous l'avez fait), MongoDB commence à supprimer les documents expirés dès que l'index a fini de se construire. Le mieux est de tail -f mongod.log lors de la création de l'index pour suivre la progression. Vous pouvez supprimer et recréer l'index en cas de problème.

Si l'index a été créé en arrière-plan, le thread TTL peut commencer à supprimer des documents pendant la construction de l'index.

Le fil TTL qui supprime les documents expirés s'exécute toutes les 60 secondes.

Si vous avez créé un index sur le réplica qui a été retiré du jeu de réplicas et qui s'exécute en mode autonome, l'index SERA créé mais les documents ne seront PAS supprimés tant que vous n'aurez pas rejoint (ou supprimé le jeu de réplicas) la configuration. Si tel est le cas, vous pouvez obtenir quelque chose de similaire à ceci dans le 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