Vấn đề của bạn đến từ việc sử dụng dấu thời gian ngây thơ trong múi giờ địa phương của bạn. Câu hỏi thường gặp về pymongo
có một mục nhập bao gồm cảnh báo không sử dụng datetime.datetime.now()
.Sử dụng utcnow
, ttl
-cài đặt hoạt động như mong đợi:
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