前序:
https://www.jb51.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网的支持。