• 如何在Mongodb中实现数据超时自动删除功能?


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

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

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

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

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

    通过设置expireAfterSeconds来控制文档的过期时间,后面的数字单位为秒哦。其实,也就是mongodb在后台起了一个线程不断的去查询并删除过期的文档。
     
    参考https://edu.aliyun.com/a/95071
  • 相关阅读:
    第15周作业
    迟到的第14周作业
    第13周作业集
    第11次作业--字符串处理
    找回感觉的练习
    第9次作业--接口及接口回调
    20194684 + 自动生成四则运算题第一版报告
    css的calc在less文件中计算有误问题
    react 细节整理
    js async属性
  • 原文地址:https://www.cnblogs.com/z-x-y/p/10285483.html
Copyright © 2020-2023  润新知