栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python pymongo过期时间设置以及删除偏移

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python pymongo过期时间设置以及删除偏移

过期时间设置需要连索引一起设置
而该索引成为TTL索引,需要用到UTC时间设置,否则不会过期
然而这里最少的过期时间为5秒,少于5秒会报错。

这里需要注意,过期时间一到,数据可能还不会立刻删除。这是因为mangodb有一个轮询操作,过期时间的记录会记录在后台任务中,等数据库的删档时间即60一到就会执行后台任务的过期时间记录。没到或者过了删档时间,则会等待下一个删档时间的来临。
这也导致了,该过期时间功能,不能执行一些需要精确的验证操作,如用户验证等。
以下是官方文档原话:

Mongodb官方文档TTL索引说明
https://docs.mongodb.com/v4.4/core/index-ttl/
pymongo官方文档:
https://pymongo.readthedocs.io/en/latest/

最后附上源代码:

# -*- coding: utf-8 -*-
"""
@Time    : 2021/9/27 10:17
@Author  : Pierce
@Email   : 1042161713@qq.com
@File    : 过期时间.py
"""
import pymongo
import datetime
import time
# 连接数据库

client = pymongo.MongoClient("localhost", 27017)
db = client.view_book

# 获取表
table = db.book1
# 创建索引并设置过期时间
table.create_index([("timer", 1)], expireAfterSeconds=5)

data = {"name": "PHP从入门到入土",
        "subject": 'PHP',
        "price": 12,
        "page": 200,
        "author": "Pierce",
        "press": "帅哥出版社",
        "timer": datetime.datetime.utcnow()}  # 需要用UTC时间
# table.insert_one(data)
# d1 = table.find_one()
# print(d1)
client.close()
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/272792.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号