我想在3天后删除用户帐户,如果他们不验证他们的电子邮件。由于调度程序效率低下,我正在寻找一种在MongoDB中安排删除的方法。如果用户验证电子邮件,我还需要一种取消它的方法。
我正在使用mgo作为MongoDB的API,我正在运行最新的Go(1.9)。
答案 0 :(得分:2)
这可以在MongoDB版本3.4中实现
您可以使用mongodb的TTL索引以及partial index expression。
尝试在users
集合上添加以下索引:
db.users.ensureIndex(
{ created_at:1},
{ expireAfterSeconds:259200,
partialFilterExpression:{"verified" : false}})
这个TTL索引删除了所有未经过验证的用户,这些用户已经被添加了3天。