前序: https://HdhCmsTestjb51.net/article/126810.htm 介绍: 机制: 创建TTL索引方法: >db.log_events.createIndex( { "createTime": 1 }, ---字段名称 { expireAfterSeconds: 60*60 } ) ---过期时间(单位秒) >db.log_events.getIndexes() ---查看索引 [ { "v" : 1, "key" : { "_id" : 1 }, "name" : "_id_", "ns" : "tt.t1" }, { "v" : 1, "key" : { "createTime" : 1 }, "name" : "createTime_1", "ns" : "tt.t1", "expireAfterSeconds" : 3600 } ] 修改TTL索引的expireAfterSeconds属性值: 注:如果想更改过期时间expireAfterSeconds,可以使用collMod方法,要不然你只能只用dropIndex(),createIndex()方法重建索引了,我想这样的方法在亿级数据量下是很头疼的 db.runCommand( { collMod: "log_events", ---集合名 index: { keyPattern: { createTime: 1 }, ---createTime为具有TTL索引的字段名 expireAfterSeconds: 7200 ---修改后的过期时间(秒) }}) 方法如下: 注:上面的createTime字段就不需要再有TTL索引了,这个expireTime的时间就需要在插入时指定上 >db.log_events.createIndex( { "expireTime": 1 }, ---字段名称 { expireAfterSeconds: 0 } ) ---过期时间(单位秒) >db.log_events.insert( { "expireTime": new Date('Jan 22, 2016 23:00:00'), ---此文档将在2016-1-22的23点自动删除 "logEvent": 2, "logMessage": "Success!"} ) 限制条件: 验证: 总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对自学php网的支持。
查看更多关于MongoDB自动删除过期数据的方法(TTL索引)的详细内容...