①过期索引(TTL)
TTL索引是让文档的某个日期时间满足条件的时候自动删除文档,这是一种特殊的索引,这种索引不是为了提高查询速度的,TTL索引类似于缓存,缓存时间到了就过期了,就要被删除了
②范例:设置索引在60秒后过期
expireAfterSeconds: 文档生存的时间,单位是秒,索引键是日期类型的
如果当期时间大于索引键的时间加上缓存时间就会删除该文档
> db.foo.ensureIndex({"create_at": 1}, {"expireAfterSeconds": 60})
{
"createdCollectionAutomatically" : false,
"numIndexesBefore" : 2,
"numIndexesAfter" : 3,
"ok" : 1
}
③范例:设置索引在10秒后过期。
db.phones.ensureIndex({"time":1},{"expireAfterSeconds":10});
④范例:在一个phones集合里面设置过期索引
如果要想实现过期索引,需要保存一个时间信息;
db.phones.insert({"tel":"110","code":"110","time":new Date());
db.phones.insert({"tel":"111","code":"111","time":new Date());
db.phones.insert({"tel":"112","code":"112","time":new Date());
等到10秒以后(永远不会那么准确)所保存的数据就会消失。
⑤
转载于:https://www.cnblogs.com/Lucky-stars/p/10555384.html