Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
go中n天后删除MongoDB文档_Mongodb_Go_Mgo - Fatal编程技术网

go中n天后删除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,

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


我正在使用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,过期帮助。。。