开发者社区> 问答> 正文

MongoDB 2.2 的TTL集合中文档如何删除?

TTL 集合支持失效时间设置,当超过指定时间后,集合自动清除超时的文档,那温度是怎么被删除的呢?求大神给讲解一下。

展开
收起
落地花开啦 2016-02-20 13:49:24 2216 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    给个小参考
    首先我们创建一个索引并设置 10 秒钟后失效:
    db.ttl_collection.ensureIndex( { "Date": 1 }, { expireAfterSeconds: 10 } )
    然后插入文档:
    db.ttl_collection.insert({"Date" : new Date()})
    因为我们想象该文档会在 10 秒后删除,可是我在我的电脑上测试多次,结果却不太一样。有些时候 mongod 在 18 秒后删除,有些时候是 40 秒。为什么会这样呢?我们已经告诉 MongoDB 要在 10 秒后删除,可事实上却不是如此。
    例如,这一次是 45 秒中后才删除:
    1
    因为 mongod 后台任务每分钟检查一次过期文档,因此在时间的处理上总有一定的差异,但这个差异不会超过 1 分钟,这也取决于 MongoDB 实例当前的负荷情况。

    2019-07-17 18:45:16
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Data as a Service - 数据即服务 -- MongoDB⾼级应⽤模式 立即下载
开源数据库 MongoDB 专场 MongoDB疑难杂症分析及优化 立即下载
饿了么高级架构师陈东明:MongoDB是如何逐步提高可靠性的 立即下载