#独家
mongdb 如何设置数据有效时间为 “仅限当天有效时间” 到明天自动删除这些数据?

2023-04-12 0 828

我在一天当中不同时间段插入若干条数据,但是我想这些数据插入mongodb 后 ,到了明天这些数据自动删除,如何设置时间索引呢?

db.auth_session.createIndex({ "createTime": 1 }, { expireAfterSeconds: 60*2 })

我在网上看到的是这种固定的时间索引 应该是2分钟,但是我每次插入数据的时间段不一样,这个时间索引肯定是基于每次 “插入数据的时间” 每次时间索引有效时间 不一样的,请问我如何操作呢?

比如我今天早上8点插入的数据 距离明天还要 16个小时这个数据自动删除。

今天下午 14:00插入的数据 距离明天还要10小时,这个数据自动删除。

如何设置过期索引呢?

可以通过Mongodb的TTL(Time-To-Live)索引来实现数据的过期自动删除功能。

以下是一些实现步骤:

  1. 安装 pymongo 库,并与MongoDB建立连接。
  2. 创建一个新的collection或在现有的collection上创建新的索引。例如,如果要在名为mycollection的collection中创建TTL索引,可以执行以下代码:collection = db[‘mycollection’] collection.create_index([(‘expireAt’, pymongo.ASCENDING)], expireAfterSeconds=0)注意:在索引中指定的字段必须是时间类型,下面的代码演示了如何在文档中使用”expireAt”字段来存储记录的过期时间:import pymongo from datetime import datetime, timedelta dbClient = pymongo.MongoClient() db = dbClient[‘mydb’] collection = db[‘mycollection’] # 插入一条新数据,包含expireAt字段来指定记录的过期时间 expire_time = datetime.utcnow() + timedelta(days=1) data = {“username”: “john”, “expireAt”: expire_time} collection.insert_one(data)上面的代码将在 collection 中插入了一条数据并将其与 expireAt 键关联,该键的值为过期日期。过期日期设置为明天的相同时间。
  3. 在 ttl_index 命令中设置 expireAfterSeconds 参数为 0,这将在指定的时间后删除已过期的文档。以上代码在创建索引时同时设置了过期

 “pymongo.ASCENDING”实际上是使用了Python中pymongo模块中的一个常量,表示升序索引。

如果你是直接在Linux终端里使用MongoDB自带的命令行工具mongo来操作,可以使用1来表示升序索引,如下所示:

db.collection.createIndex( { "expireAt": 1 }, { expireAfterSeconds: 0 } )

其中,1表示升序索引,-1表示降序索引。

需要注意的是,MongoDB自带的命令行工具mongo并不支持过期索引的创建,需要在pymongo等客户端库中使用相应函数来创建过期索引。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

1. JK下载官网所有资源来源于开发团队,加入会员即可下载使用!如有问题请联系右下角在线客服!
2. JK下载官方保障所有软件都通过人工亲测,为每位会员用户提供安全可靠的应用软件、游戏资源下载及程序开发服务。
3. JK开发团队针对会员诉求,历经多年拥有现今开发成果, 每款应用程序上线前都经过人工测试无误后提供安装使用,只为会员提供安全原创的应用。
4. PC/移动端应用下载后如遇安装使用问题请联系右下角在线客服或提交工单,一对一指导解决疑难。

JK软件下载官网 技术分享 mongdb 如何设置数据有效时间为 “仅限当天有效时间” 到明天自动删除这些数据? https://www.jkxiazai.com/1507.html

JK软件应用商店是经过官方安全认证,保障正版软件平台

相关资源

官方客服团队

为您解决烦忧 - 24小时在线 专业服务