Mongodb 使用TTL索引和数据恢复的过期mongo数据

Mongodb 使用TTL索引和数据恢复的过期mongo数据,mongodb,indexing,ttl,Mongodb,Indexing,Ttl,我正忙于考虑在MongoDB中的集合上使用TTL索引,并想知道在恢复的情况下会有什么影响 例如,如果我将集合的TTL设置为2天: db.logEvents.ensureIndex({"datestamp":1},{expireAfterSeconds:172800}) 如果我在一周后使用mongodump restore备份每日日志,logEvents集合会是空的吗?对于mongodump/mongorestore,我正在考虑在还原之前在logEvents.metadata.json中手动修改

我正忙于考虑在MongoDB中的集合上使用TTL索引,并想知道在恢复的情况下会有什么影响

例如,如果我将集合的TTL设置为2天:

db.logEvents.ensureIndex({"datestamp":1},{expireAfterSeconds:172800})
如果我在一周后使用mongodump restore备份每日日志,logEvents集合会是空的吗?对于mongodump/mongorestore,我正在考虑在还原之前在
logEvents.metadata.json
中手动修改/删除索引-这样行吗


如果从原始数据文件还原,该怎么办?如何使用datadir中还原的原始文件启动mongod服务,而不立即使数据过期?

这是一个很好的问题

为了检查我是否创建了一个集合并测试了您的场景,其中恢复的数据在ttl之外

这些记录被恢复,并在接下来的几秒钟内从收集中删除

在更改元数据文件中的索引详细信息后,我能够列出原始ttl窗口之外的记录

删除的条目:

,“expireAfterSeconds”:36.0

只要您使用
NMAP
engine,从原始文件还原也可能会起作用。
WiredTiger
在文件外部存储了一些额外的数据,我无法从WT文件恢复采集


玩得开心

感谢教授,将您的答案标记为正确,似乎您测试并确认了该方法的有效性。@Brett这是我的荣幸:-)