【问题标题】:MongoDB TTL CollectionMongoDB TTL 集合
【发布时间】:2017-05-11 21:43:05
【问题描述】:

我有一个标记集合,这些标记有一个“createdAt”日期,mongo 将每小时对我过期,我还有一个用户集合,其中每个用户都有一个 ObjectId 列表到他们设置的标记,有什么办法吗当 MongoDB 过期标记时,我可以从用户标记列表中删除标记 ID?

【问题讨论】:

    标签: java mongodb ttl


    【解决方案1】:

    引用TTL Index - Delete Operations

    mongod 中的后台线程读取索引中的值并从集合中删除过期文档。

    当 TTL 线程处于活动状态时,您将在 db.currentOp() 的输出或数据库分析器收集的数据中看到删除操作。

    似乎没有任何方法可以挂钩该过程。

    您可以做的是停止在用户端保留标记列表,而是在标记本身中保留用户 ID(并根据您将如何存储引用和查询它添加适当的索引)。这样您就可以快速检索用户的标记,而无需担心列表中的条目过时而需要额外查询。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-13
      • 2013-06-08
      • 2014-05-07
      • 1970-01-01
      • 1970-01-01
      • 2015-05-10
      • 1970-01-01
      相关资源
      最近更新 更多