2017-05-11 76 views
0

我有一个标记集合,它有一个'createdAt'日期,mongo会每隔一小时对我过期,我也有一个用户集合,其中每个用户都有一个ObjectId列表给他们设置的标记,是有什么办法可以在MongoDB到期的时候从用户标记列表中删除标记ID?MongoDB TTL Collection

回答

0

报价TTL Index - Delete Operations

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

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

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

你可以做的是停止在用户端保留标记列表,而是在标记本身中保留用户标识(并根据你将如何存储引用和查询来添加适当的索引)。通过这种方式,您可以快速获取用户的标记,并且无需担心列表中的陈旧条目,但需要花费额外的查询。