使用expiresAfterSecond后未在Mongo中删除的文档

时间:2017-07-12 13:47:08

标签: mongodb ttl

我正在使用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
        }
]

感谢任何帮助。提前谢谢。

0 个答案:

没有答案