有没有办法手动触发mongodb上的TTL监控?

时间:2015-04-23 19:47:56

标签: mongodb

只是想知道是否有一个可以对mongodb进行调用会强制它检查设置了TTL值的集合? (而不是等到它到处时)

2 个答案:

答案 0 :(得分:0)

假设您知道具有TTL索引的字段和您在其上设置的TTL时间,您只需执行此查询即可。它本质上是TTL机制定期执行的操作。

db.collection.remove({ fieldWithTimeToLiveIndex: { $lt: new Date() - TTLTime } });

答案 1 :(得分:0)

你为什么要那样做? TTL监视器不是限制结果的工具,而是清理数据库的工具。因此,不要手动触发TTL,而是在查询中限制结果:

db.collection.find({..., dateField: {$gt: someExpirationDate} })

这样做的好处是它更可靠,因为它不会返回即将删除的结果,但也不会。