使用mongo-go-dirver创建TTL索引

数据库:test_db, 数据表 test_table:

id

content

expire_date

1 Good luck

2019-03-01 08:14:58.000

2 Good luck

2019-03-02 08:14:58.000

3 Good luck

2019-03-03 08:14:58.000

4 Good luck

2019-03-04 08:14:58.000

5 Good luck

2019-03-05 08:14:58.000

6 Good luck

2019-03-06 08:14:58.000

示例代码:

client = mongo.Connect(...)
 
indexModel := mongo.IndexModel{
    Keys: bsonx.Doc{{"expire_date", bsonx.Int32(1)}}, // 设置TTL索引列"expire_date"
    Options:mongo.NewIndexOptionsBuilder().ExpireAfterSeconds((1*24*3600)).Build(), // 设置过期时间1天,即,条目过期一天过自动删除
}
_, err := client.Database("test_db").Collection("test_table").Indexes().CreateOne(context.Background(), indexModel) // 创建TTL
if err != nil {
    // 出错处理
}

如果当前时间2019-03-02 08:15:58.000,则第一条记录就会被自动删除

Ref:

https://docs.mongodb.com/manual/core/index-ttl/ TTL index详细介绍

https://docs.mongodb.com/manual/indexes/#index-types  IndexModel中关于index type的详细介绍

猜你喜欢

转载自blog.csdn.net/sky_terra/article/details/88357065
今日推荐