我设置了expireAfterSeconds
的索引。当db.my_collection.getIndexes()
的输出仅显示以下内容时,如何使用CLI确认:
{
"v": 1,
"key": {
"last_used_at": 1
},
"name": "last_used_at_1",
"ns": "cms.user_sessions"
}
它看起来就像没有设置expireAfterSeconds
的普通索引。
如何确认使用expireAfterSeconds
创建索引?
这是创建索引的Ruby代码。我已经尝试删除索引并使用此代码重新创建它几次。
@user_sessions.indexes.create_many([
{key: {token: 1}, unique: true},
{key: {last_used_at: 1}, expireAfterSeconds: ttl}
])
版本信息:
$ mongod --version db version v2.6.5 2016-07-13T16:11:45.844+0200 git version: e99d4fcb4279c0279796f237aa92fe3b64560bf6 $ gem list | grep mongo mongo (2.2.5)
答案 0 :(得分:1)
您的索引存在问题,请尝试删除它并重新创建。
设置TTL后,您将从db.name.getIndexes()
命令
[
{
"v" : 1,
"key" : {
"_id" : 1
},
"name" : "_id_",
"ns" : "test.eventlog"
},
{
"v" : 1,
"key" : {
"lastModifiedDate" : 1.0
},
"name" : "lastModifiedDate_1",
"ns" : "test.eventlog",
"expireAfterSeconds" : 3600.0
}
]