
Q: MongoDB能否设置数据有效期?
我们可以使用MongoDB的TTL索引和Capped集合功能来设置数据有效期,具体操作方法和说明如下:
随着数据越来越多,存储成本会不断上升。通常很多日志数据都有一个特性,日志数据的价值会随时间递减。比如1年前、甚至3个月前的历史数据完全没有分析价值,这部分可以不用存储,以降低存储成本。
TTL索引
MongoDB的TTL索引可以支持文档在一定时间之后自动过期删除。例如日志time字段代表了请求产生的时间,针对该字段建立一个TTL索引,则文档会在30小时后自动被删除。如:db.events.createIndex({time:1},{expireAfterSeconds:108000});
使用Capped集合
如果对日志保存的时间没有特别严格的要求,只是在总的存储空间上有限制,则可以考虑使用capped collection来存储日志数据。指定一个最大的存储空间或文档数量,当达到阈值时,MongoDB会自动删除capped collection里最老的文档。如:db.createCollection(“event”,{capped:ture,size:104857600000}。


文章转载自阿里云数据库,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




