登录
首页 >  Golang >  Go问答

设置集合中过期数据的 TTL

来源:stackoverflow

时间:2024-04-13 20:27:29 275浏览 收藏

从现在开始,我们要努力学习啦!今天我给大家带来《设置集合中过期数据的 TTL》,感兴趣的朋友请继续看下去吧!下文中的内容我们主要会涉及到等等知识点,如果在阅读本文过程中有遇到不清楚的地方,欢迎留言呀!我们一起讨论,一起学习!

问题内容

是否有使用官方 mongo 驱动程序通过密钥配置数据自删除的正确方法?我在 Mongo-driver 模块中找到的唯一方法是 ExpireAfterSeconds,但我不确定如何正确使用它。 这是目前已准备好的存储库。


解决方案


您需要在需要在 n 秒后删除的字段上创建 ttl 索引。

在下面的代码片段中,创建了一个可以设置 ttl 的过期时间字段。记录中设置的过期时间 60 秒后,该记录将被删除。

以下是创建 ttl 索引的代码:

var ttl *int32
    *ttl = 60
    keys := bsonx.Doc{{Key: "expirationTime", Value: bsonx.Int32(int32(1))}}
    idx := mongo.IndexModel{Keys: keys, Options: &options.IndexOptions{ExpireAfterSeconds: ttl}}
    _, err := collection.Indexes().CreateOne(context.Background(), idx)
    if err != nil {
        fmt.Println("Error occurred while creating index", err)
    } else {
        fmt.Println("Index creation success")
    }

理论要掌握,实操不能落!以上关于《设置集合中过期数据的 TTL》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>