mongodb 设置自动删除过期数据

Posted 德福瑞恩

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mongodb 设置自动删除过期数据相关的知识,希望对你有一定的参考价值。

MongoDB 2.2 引入一个新特性–TTL 集合,TTL集合支持失效时间设置,或者在某个特定时间,
集合自动清除超时文档,者用来保存一个诸如session会话信息的时候非常有用。

如果想使用TTL集合,用用到 expireAfterSeconds 选项

mongo
官网使用文档设置方法:

Expire Documents after a Specified Number of Seconds
首先创建索引,设置过期时间

db.log_events.createIndex( { "createdAt": 1 }, { expireAfterSeconds: 3600 } )

 

然后存储数据入库

db.log_events.insert( {
   "createdAt": new Date(),
   "logEvent": 2,
   "logMessage": "Success!"
} )

 

mongodb 会在 createdAt 数值大于 expireAfterSeconds 指定的值。

Expire Documents at a Specific Clock Time
与上面的设置类似
首先建立索引,设置 expireAfterSeconds 为 0

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

 

然后存储数据

db.log_events.insert( {
   "expireAt": new Date(July 22, 2013 14:00:00),
   "logEvent": 2,
   "logMessage": "Success!"
} )

expireAt 的值为特定的时间值,等时间到达expireAt的值时,这个文档就 失效了。

 

以上是关于mongodb 设置自动删除过期数据的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法设置“过期”时间,之后在 PostgreSQL 中自动删除数据条目?

MongoDB 学习笔记之 TTL索引,部分索引和文本索引

如何设置symantecBE的存储(自动删除过期数据)

MongoDB的固定集合

redis当一个key被设置了过期key会被自动删除么

redis key过期提醒,实现订单自动取消