为集合中的过期数据设置 TTL

Setting TTL for expire data from collection

有没有使用official mongo driver? The only method that I found in the Mongo-driver module is ExpireAfterSeconds配置按键自删数据的正确方法,但不知道如何正确使用。 这是 repository 目前准备好的内容。

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

在下面的代码片段中,创建了一个可以设置 ttl 的 expirationTime 字段。从记录中设置的 expirationTime 起 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")
    }