mongodb 设置自动删除过期数据
来源:互联网 发布:vb数据库源代码 编辑:程序博客网 时间:2024/05/21 06:41
Time To Live(TTL) 集合
MongoDB 2.2 引入一个新特性–TTL 集合,TTL集合支持失效时间设置,或者在某个特定时间,
集合自动清除超时文档,者用来保存一个诸如session会话信息的时候非常有用。
如果想使用TTL集合,用用到 expireAfterSeconds 选项
mongo
官网使用文档设置方法:
Expire Documents after a Specified Number of Seconds
首先创建索引,设置过期时间
- 1
- 2
- 1
- 2
然后存储数据入库
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
mongodb 会在 createdAt 数值大于 expireAfterSeconds 指定的值。
Expire Documents at a Specific Clock Time
与上面的设置类似
首先建立索引,设置 expireAfterSeconds 为 0
- 1
- 2
- 1
- 2
然后存储数据
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
expireAt 的值为特定的时间值,等时间到达expireAt的值时,这个文档就 失效了。
pymongo
由于自己使用Python进行mongodb的使用,程序如下
1 设置文档在66秒后过期。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
2 设置特定时间
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
注意,上面的时间使用的是datetime.datetime.utcnow() 而不是 datetime.datetime.now(), 这两者的时间是有差别的,数据存入mongodb的客户端中可以看得到。
现在时间是 2017-02-09 14:36
第一条数据使用 datetime.datetime.utcnow() 的时间
第二条数据使用 datetime.datetime.now() 的时间
所以,第二条数据会在晚上 10点多才会过期。
mongoengine
自己使用的Django中的数据库也是mongodb。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
修改成特定时间过期的方式与pymongo中的类似。
参考文档:
python - Mongodb TTL expires documents early
http://www.itgo.me/a/8424428520865988282/mongodb-ttl-expires-documents-early
MongoDB自动删除过期数据–TTL索引
http://blog.csdn.net/jianlong727/article/details/54631124
- mongodb 设置自动删除过期数据
- 【mongodb】设置自动删除过期数据
- MongoDB自动删除过期数据--TTL索引
- mongodb删除过期数据
- Mongodb--TTL索引(Mongodb自动删除数据)
- mongodb 集合设置过期时间
- mongodb 设置过期时间 mongodb缓存
- 自动删除过期归档日志
- redis如何删除过期数据
- 如何在Mongodb中实现数据超时自动删除功能?
- Mongodb 设置过期时间Expire Date
- RMAN不会自动删除过期文件
- 使用forfiles自动批量删除过期文件
- Centos自动删除过期备份或者文件
- mongodb基础数据删除
- mongodb删除数据
- mongodb批量删除数据
- Mongodb 删除重复数据
- django网站设计与规划【Tango with Django】
- Linxu学习——第3章 命令基本格式及文件处理命令
- mysql 命令以及函数
- 5.10号学习日志
- mongdb使用
- mongodb 设置自动删除过期数据
- Javaweb当中对Servlet中的doget和dopost方法的简单使用
- Linux-xshell awk命令总结
- Java概念性问题7
- redis事务及锁应用
- Android WebView硬件加速渲染网页UI的过程分析
- Linux 驱动程序 中断管理
- Socket编程——java实现
- 数组,集合,列表的使用与区别