zoukankan      html  css  js  c++  java
  • 如何在Mongodb中实现数据超时自动删除功能?

    在工作过程中,我们难免会遇到这样的问题,我们想保存一些数据,但是我们对这些数据的要求并不高,有时候往往只是想要某个时间范围内的数据,比如我们如果永远只关心从当前时间往前推半年内的数据特性,那么我们就不需要将所有数据都保存起来,因为不仅浪费磁盘空间,而且随着数据量的不断累积,其他性能也会受到影响。

    这时候我们迫切的需要一直方法能够在我们插入数据的时候自动的帮我们去删除我们过一段时间就不想要的数据,那么怎么实现呢。

    在Mongodb内部,有一个特殊的索引,称为TTL索引,通过该索引便可以实现上面的功能。什么事TTL 索引。怎么创建一个TTL索引呢。

    TTL索引是一个特殊的索引,目前只支持在单个的字段上设置索引,而且该字段必须是日期类型或者是包含日期类型的数组类型。我们可以通过createIndex方法来创建一个TTL索引,具体如下所示:

    db.collection.createIndex({“createtime”:1},{expireAfterSeconds:60});

    通过设置expireAfterSeconds来控制文档的过期时间,后面的数字单位为秒哦。其实,也就是mongodb在后台起了一个线程不断的去查询并删除过期的文档。
     
    参考https://edu.aliyun.com/a/95071
  • 相关阅读:
    重塑矩阵
    买卖股票
    两个数组的交集
    洛谷 P3700
    HDU 6987
    Solution -「NOI 2021」「洛谷 P7740」机器人游戏
    「NOI 2021」酱油记
    Solution -「UNR #5」「UOJ #671」诡异操作
    CD from Codeforces Round #703 (Div. 2)
    CD from Codeforces Round #701 (Div. 2)
  • 原文地址:https://www.cnblogs.com/z-x-y/p/10285483.html
Copyright © 2011-2022 走看看