第28章:MongoDB-索引--过期索引(TTL)

博客介绍了数据库实现过期索引的方法,即保存一个时间信息,通过代码示例展示向数据库插入带时间的数据,如db.phones.insert(...),并指出约10秒后所保存的数据会消失。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

①过期索引(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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值