sql >> Databáze >  >> NoSQL >> MongoDB

Platnost dokumentů Mongodb TTL předčasně vyprší

Vaše problémy pocházejí z používání naivních časových razítek ve vašem místním časovém pásmu. FAQ o pymongo má záznam, který obsahuje varování, aby se nepoužívalo datetime.datetime.now() .Pomocí utcnow , ttl -nastavení funguje podle očekávání:

import pymongo
import datetime

mongo_con = pymongo.Connection('localhost', 27017)
mongo_db = mongo_con.Mongo_database
mongo_col = mongo_db.my_TTL_collection

timestamp = datetime.datetime.now()
utc_timestamp = datetime.datetime.utcnow()

mongo_col.ensure_index("date", expireAfterSeconds=3*60)                     

mongo_col.insert({'_id': 'session', "date": timestamp, "session": "test session"})
mongo_col.insert({'_id': 'utc_session', "date": utc_timestamp, "session": "test session"})
# the utc_session will be deleted after around 3 minutes, 
# the other depending on your timezone


  1. vytváření logiky uvnitř Spring Batch pomocí Tasklet nebo uvnitř CompositeItemWriter?

  2. Volání nedefinované metody MongoDB\Driver\ReadConcern::isDefault()

  3. Správa MySQL, MongoDB a PostgreSQL pomocí ChatOps od Slacku

  4. Vyhledání všech záznamů obsahujících dané podpole v mongodb