【发布时间】:2016-09-07 12:48:02
【问题描述】:
使用 Mongo 3.2
我将 expireAfterSeconds 设置为 3 天,因为我们不需要此集合中超过 3 天的数据,但我可以在数据库中看到,我们仍然有一个月前的数据。是不是配置有问题。
从 db.runs.getIndexes() 收集的信息
{
"v" : 1,
"key" : {
"_id" : 1
},
"name" : "_id_",
"ns" : "guardian.runs"
},
{
"v" : 1,
"key" : {
"created" : 1
},
"name" : "created_1",
"ns" : "guardian.runs",
"background" : true,
"expireAfterSeconds" : 259200
}
应该删除的条目:
[
{
"_id": "578c8aa25a3f72387073f2f0",
"job_id": "573f62bf0e44a2796b6e9de1",
"owner": null,
"started": "2016-07-18T07:52:02.447Z",
"ended": "2016-07-18T07:52:14.119Z",
"status": "success",
"result": {
"success": [],
"fail": [],
"warning": []
}
}
]
【问题讨论】:
-
添加了一项
-
您的文档没有您的 TTL 索引引用的
created字段。 -
所以如果我将 created 更改为 end,它应该可以工作吗?
-
可以,只要
ended是一个实际的日期数据类型,而不仅仅是一个字符串。