sql >> データベース >  >> NoSQL >> MongoDB

MongodbTTLはドキュメントを早期に期限切れにします

    問題は、ローカルタイムゾーンで単純なタイムスタンプを使用することから発生します。 pymongoのFAQ datetime.datetime.now()を使用しないようにという警告を含むエントリがあります 。utcnowの使用 、ttl -設定は期待どおりに機能します:

    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. MongoDB 2.6インデックスの設定、$ or、$ inを使用したクエリ、制限と並べ替え

    2. 既存のプロセスを監視するための神の構成ファイル?

    3. MongoDB updateMany()

    4. skip()およびlimit()で使用されるDistinct()コマンド