如何在Mongodb中实现数据超时自动删除功能?
来源:互联网 发布:2017非农数据公布时间 编辑:程序博客网 时间:2024/04/30 09:24
在工作过程中,我们难免会遇到这样的问题,我们想保存一些数据,但是我们对这些数据的要求并不高,有时候往往只是想要某个时间范围内的数据,比如我们如果永远只关心从当前时间往前推半年内的数据特性,那么我们就不需要将所有数据都保存起来,因为不仅浪费磁盘空间,而且随着数据量的不断累积,其他性能也会受到影响。
这时候我们迫切的需要一直方法能够在我们插入数据的时候自动的帮我们去删除我们过一段时间就不想要的数据,那么怎么实现呢?
在Mongodb内部,有一个特殊的索引,称为TTL索引,通过该索引便可以实现上面的功能。什么事TTL 索引?怎么创建一个TTL索引呢?
TTL索引是一个特殊的索引,目前只支持在单个的字段上设置索引,而且该字段必须是日期类型或者是包含日期类型的数组类型。我们可以通过createIndex方法来创建一个TTL索引,具体如下所示:
db.collection.createIndex({“createtime”:1},{expireAfterSeconds:60});
通过设置expireAfterSeconds来控制文档的过期时间,后面的数字单位为秒哦!其实,也就是mongodb在后台起了一个线程不断的去查询并删除过期的文档。
0 0
- 如何在Mongodb中实现数据超时自动删除功能?
- 数据定时自动删除功能的实现
- Mongodb--TTL索引(Mongodb自动删除数据)
- 如何在Oracle中批量删除数据
- 如何在Oracle 中实现类似自动增加 ID 的功能?
- 如何在Oracle 中实现类似自动增加 ID 的功能?
- 在Oracle Form中,如何实现自动编号(行号)的功能
- 在Spring data MongoDB中实现批量删除记录
- MongoDB自动删除过期数据--TTL索引
- mongodb 设置自动删除过期数据
- 【mongodb】设置自动删除过期数据
- 在Java中实现MongoDB的Group功能
- SqlServer中如何实现自动备份数据
- 如何在.net中实现级联删除?
- 在YC++中如何实现Ajax功能
- 在YC++中如何实现Ajax功能
- 在YC++中如何实现Ajax功能
- 在YC++中如何实现Ajax功能
- 益签到软件系统
- public void onItemClick(AdapterView<?> arg0, View view, int position, long arg3)参数解析
- android代码的形式让button变成圆角 透明,如图
- rcnn、fast-rcnn和faster-rcnn
- 空间FFT确定目标位置算法matlab仿真
- 如何在Mongodb中实现数据超时自动删除功能?
- opencv-3.1.0 CMake出现 Downloading opencv_ffmpeg.dll...
- Android事件分发机制完全解析,带你从源码的角度彻底理解(上)
- Android事件分发机制完全解析,带你从源码的角度彻底理解(下)
- Qt之QToolButton
- Android页面跳转器--消除跳转时Activity之间的耦合性
- c++之string类型
- C++基本简介
- SQL