我正在使用MongoDB ttl功能。我创建了一个样本集合(expiryTrial)并插入了一个示例文档,如下所示。
db.expiryTrial.insert({"createdAt": new Date(), "key":"value"})
接下来,我创建了一个索引,并给出了如下所示的到期时间
db.expiryTrial.ensureIndex({"createdAt": 1}, {expireAfterSeconds: 60})
但是经过一段时间后我没有看到文件被删除。我知道在预期之后可能需要更长的时间,因为ttl线程每60秒运行一次。但即使在离开文件5-6分钟后,他们仍然在那里。以下是一些可能有用的细节。
我使用以下命令检查了ttl监视器是否仍处于活动状态
db.adminCommand({getParameter:1, ttlMonitorSleepSecs: 1});
输出: -
{ "ttlMonitorSleepSecs" : 60, "ok" : 1 }
我使用以下命令检查了索引是否已创建
db.expiryTrial.getIndexes()
输出: -
[
{
"v" : 2,
"key" : {
"_id" : 1
},
"name" : "_id_",
"ns" : "test.expiryTrial"
},
{
"v" : 2,
"key" : {
"createdAt" : 1
},
"name" : "createdAt_1",
"ns" : "test.expiryTrial",
"expireAfterSeconds" : 30
}
]
感谢任何帮助。提前谢谢。