如何使用 golang 和 mongodb 创建 TTL(生存时间)索引?这就是我目前尝试这样做的方式:sessionTTL := mgo.Index{ Key: []string{"created"}, Unique: false, DropDups: false, Background: true, ExpireAfter: session_expire} // session_expire is a time.Durationif err := db.C("session").EnsureIndex(sessionTTL); err != nil { panic(err)}但是,如果我使用以下方法查找:db.session.getIndexes()session_expire 设置为 5*time.Second。文档中的“创建”字段使用 time.Now() 设置为当前日期,因此我预计文档会在 5 秒后被删除。
2 回答
幕布斯7119047
TA贡献1794条经验 获得超8个赞
我试图使用这个问题的答案,但遇到了一个问题。考虑以下小改动:
sessionTTL := mgo.Index{
Key: []string{"created"},
Unique: false,
DropDups: false,
Background: true,
ExpireAfter: 60 * 60} // one hour
if err := db.C("session").EnsureIndex(sessionTTL); err != nil {
panic(err)
}
这样做的问题是,如果ExpireAfter不是正确的time.Duration.
我不得不更改为:ExpireAfter: time.Duration(60 * 60) * time.Second,
- 2 回答
- 0 关注
- 191 浏览
添加回答
举报
0/150
提交
取消