Mongodb Expire Documents after a Specified Number of Seconds
来源:互联网 发布:淘宝购物节qq空间 编辑:程序博客网 时间:2024/06/06 08:50
通过设置TTL使集合中的数据过期
2.2 新版功能.
2.2 新版功能.
本文对MongoDB的 “存活时间” 或者叫作”TTL“的集合特性进行了介绍。TTL集合能让存储在MongoDB中的数据在指定的秒数后或在指定的时钟时间被mongod 自动删除。
数据过期对某些类型的信息很有用,包括机器生成的事件数据、日志以及只需要存在一段有限时间内的会话信息。
一个特别的索引类型支撑了TTL集合的实现。TTL依赖一个在 mongod 中的后台线程,该线程读取索引中日期类型的值并从集合中删除过期的documents。
步骤
在(文档)创建之后一定的秒数删除文档。这样的TTL索引还会支持对于文档创建时间的查询。或者,
注解
The TTL index is a single field index. Compound indexes do notsupport the TTL property. For more information on TTL indexes, seeTTL索引.
Expire Documents after a Specified Number of Seconds
为了使文档在一定的秒数后过期,在容纳BSON日期类型或BSON日期类型对象数组的值的字段上创建TTL索引 并 在 expireAfterSeconds 指定一个正的非零值。当被索引字段 [1] 指定的时间经过了 expireAfterSeconds 字段中的秒数时,文档将会过期。
例如,如下操作在 log_events 集合的createdAt 字段创建了一个索引并指定expireAfterSeconds 的值为3600 以使过期时间为 createdAt 指定的时间之后的一小时。
db.log_events.createIndex( { "createdAt": 1 }, { expireAfterSeconds: 3600 } )
当向 log_events 集合添加文档时,设置createdAt 字段为当前时间:
db.log_events.insert( { "createdAt": new Date(), "logEvent": 2, "logMessage": "Success!"} )
当某文档的 createdAt 字段的值[1] 晚于 expireAfterSeconds``中指定的秒数时,MongoDB会自动从``log_events 集合删除该文档。
如果该字段包含一组BSON日期类型的对象,如果至少有一个BSON日期类型的对象晚于 ``expireAfterSeconds``中指定的秒数,数据过期。
参见
$currentDate 操作符
Expire Documents at a Specific Clock Time
为了使文档在一个确定的时钟时间过期,首先在一个容纳BSON日期类型或BSON日期类型对象数组的值的字段上创建TTL索引 并 把 expireAfterSeconds 指定为 0。对于集合中的每个文档,设置其被索引的日期字段为与文档过期的时间一致的值。如果被索引字段包含了一个过去了的日期,MongoDB认为该文档过期。
例如,如下操作在 log_events 集合的createdAt 字段创建了一个索引并指定expireAfterSeconds 的值 0。
db.log_events.createIndex( { "expireAt": 1 }, { expireAfterSeconds: 0 } )
对于每个文档,设置 expireAt 的值与文档过期的时间一致。举例来说,如下的insert() 操作添加了一个将在2013年7月22号 14:00:00 过期的文档。
db.log_events.insert( { "expireAt": new Date('July 22, 2013 14:00:00'), "logEvent": 2, "logMessage": "Success!"} )
当某文档的 expireAt 字段的值晚于expireAfterSeconds``中指定的秒数时——在本例中也就是 ``0 ,MongoDB会自动从 log_events 集合删除该文档。因此,数据在指定的expireAt 值过期。
- Mongodb Expire Documents after a Specified Number of Seconds
- after running a think tank for a number of years
- mongodb报错:the limit must be specified as a number。
- ORA-24399:invalid number of connections specified
- Factorial of a number
- A. The number of positions
- Rotate bits of a number
- Transaction timed out after 29 seconds
- Nagios CHECK_NRPE: Socket timeout after 10 seconds
- filezilla Connection timed out after 20 seconds
- Mongodb 设置过期时间Expire Date
- EXPIRE
- expire
- Powreshell.exe to get full commandline of a specified process
- Decodes a String into an object of the specified type
- A discovery found that after two weeks of work
- [LinkedIn] Find the 100 most frequently occurring words in a set of documents.
- #Paper Reading# SummaRuNNer: A RNN based Sequence Model for Extractive Summarization of Documents
- 第三篇 提高篇—大胆曹贼,我跟你拼啦!第21回 反编译比较符合我的性格!
- 追求代码质量: 用代码度量进行重构
- android:px,dp(dip),sp的区别
- 阿里巴巴fastjson简用
- 第22回多线程是干什么滴!
- Mongodb Expire Documents after a Specified Number of Seconds
- java 趣味题目解题。
- onresume和onrestart的区别
- PHP获取POST数据的三种方法
- rename and renameat Functions
- 关于popupWindow的使用
- Tesseract OCR初探
- 王爽《汇编语言》实验9
- Unity3D编译宏