首页 > 解决方案 > MongoDB TTL 索引不会删除过期记录

问题描述

我在我的集created_at​​合字段上创建了一个 TTL 索引,以便在 30 秒后自动删除文档,但经过一段时间后(5 分钟后),文档没有被删除。我阅读了一些相关问题,我确信我的收藏中没有错字。这是运行后的JSONdb[collectionName].getIndexes()

[
{
    "v" : 2,
    "key" : {
        "_id" : 1
    },
    "name" : "_id_",
    "ns" : "record_db.collectionName"
},
{
    "v" : 2,
    "key" : {
        "created_at" : 1.0
    },
    "name" : "created_at_1",
    "ns" : "record_db.collectionName",
    "expireAfterSeconds" : 30.0
}

] 这是一个示例文档:

{
  "_id" : ObjectId("5fc3823af29f9d9eb1518857"),
  "record_path" : path/to/file,
  "timestamp" : 1606648392,
  "humantime" : "29/11/2020 18:12:58",
  "created_at" : ISODate("2020-11-29T18:12:58.859Z")
}

标签: javascriptnode.jsmongodb

解决方案


ISODate("2020-11-29T18:12:58.859Z") 还没有发生。

const iso = "2020-11-29T18:12:58.859Z"

const date = new Date(iso);
console.log(date.toString());


推荐阅读