Pymongo和TTL的过期时间错误

3
我希望使用pymongo将数据保存到MongoDB中,并且如果在一个月内没有人删除它,它需要自动过期(可能更短)。 (另一个脚本将执行读取+删除操作)。
目前,我正在使用“expireAfterSeconds”测试TTL,但它的工作方式不符合我的要求。以下是我的示例:
client = MongoClient()
db = client.save_db
model = db.save_co
model.create_index("inserted", expireAfterSeconds = 120)
inserted_id = model.insert_one({"order_number":123456789, "inserted":datetime.datetime.utcnow()}).inserted_id

i = 1
while model.find_one(inserted_id) is not None:
    time.sleep(1)
    i += 1

print(i)
exit()

我认为输出的值应该是120,但实际上是154160,有时也是123
我不明白自己做错了什么,请帮忙解决一下?谢谢。
1个回答

3

哦,好的,谢谢。这是否意味着在我设置的过期时间后60秒以上,删除将永远不会发生?我担心时间会随着时间的推移而增加,一天可能会变成两天或其他什么。 - Ju Gaertner
我认为,即使您拥有非常大的数据库和大量运行操作,删除过期文档的时间也不会增长到几天。我认为可能是几分钟。 - sanyassh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接