go中n天后删除MongoDB文档
我想删除用户帐户后3天,如果他们不验证他们的电子邮件。由于调度程序效率低下,我正在寻找一种在MongoDB中调度此删除的方法。我还需要一种方法来取消它,如果用户验证电子邮件go中n天后删除MongoDB文档,mongodb,go,mgo,Mongodb,Go,Mgo,我想删除用户帐户后3天,如果他们不验证他们的电子邮件。由于调度程序效率低下,我正在寻找一种在MongoDB中调度此删除的方法。我还需要一种方法来取消它,如果用户验证电子邮件 我正在使用mgo作为MongoDB的api,并且正在运行最新的Go(1.9)。这可以在MongoDB版本3.4中实现 您可以使用mongodb的索引和 尝试在用户集合上添加以下索引: db.users.ensureIndex( { created_at:1}, { expireAfterSeconds:259200,
我正在使用mgo作为MongoDB的api,并且正在运行最新的Go(1.9)。这可以在MongoDB版本3.4中实现 您可以使用mongodb的索引和 尝试在
用户
集合上添加以下索引:
db.users.ensureIndex(
{ created_at:1},
{ expireAfterSeconds:259200,
partialFilterExpression:{"verified" : false}})
此TTL索引将删除所有未经验证的用户,自添加这些用户至今已3天。这是第一次搜索结果。可能是重复的,谢谢。当有人验证他的帐户时,是否也可以删除此支票?所以mongodb不会每次都检查这个。expireAfterSeconds是相对于我创建文档的时间还是相对于我执行此命令的时间?对于第一部分,您必须从应用程序端更新它(当用户接受它时,将verified设置为true)。expireAfterSec是指您创建文档的时间。@Florian运行TTL expieries的后台进程每分钟运行一次,无论发生什么情况(iirc,即使没有TTL索引)。不用担心。从2020年起用作createIndex,过期帮助。。。