n 天后删除 MongoDB 文档

Delete MongoDB document after n days in go

我想在 3 天后删除未验证电子邮件的用户帐户。由于调度程序效率低下,我正在寻找一种在 MongoDB 中安排此删除的方法。如果用户验证电子邮件,我还需要一种取消它的方法。

我在 MongoDB 中使用 mgo 作为 api 并且我是 运行 最新的 Go (1.9)。

这可以在 MongoDB 版本 3.4

中实现

您可以使用 mongodb 的 TTL index along with partial index expression

尝试在 users 集合上添加以下索引:

db.users.ensureIndex(
{ created_at:1}, 
{ expireAfterSeconds:259200, 
  partialFilterExpression:{"verified" : false}})

此 TTL 索引删除了所有未验证的用户,并且已添加 3 天。