程序员人生 网站导航

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

栏目:数据库应用时间:2016-08-09 08:25:13

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

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

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

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

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

通过设置expireAfterSeconds来控制文档的过期时间,后面的数字单位为秒哦!其实,也就是mongodb在后台起了1个线程不断的去查询并删除过期的文档。

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐