繁体   English   中英

Mongo TTL清理不起作用

[英]Mongo TTL cleanup is not working

我试图让Mongo删除具有TTL功能的文档但是没有成功。 尝试了很多东西但mongo似乎没有清理。

我的索引:

    {
    "v" : 1,
    "key" : {
        "date" : 1
    },
    "name" : "date_1",
    "ns" : "history.history",
    "expireAfterSeconds" : 60
}

来自文件的日期值:

       "date" : "2016-09-29 11:08:46.461207",

db.serverStatus()。metrics.ttl的输出:

{ "deletedDocuments" : NumberLong(0), "passes" : NumberLong(29) }

db.serverStatus()的时间输出:

"localTime" : ISODate("2016-09-29T11:19:45.345Z")

我唯一怀疑的是我从Python插入值的方式。 可能是因为它在某种程度上是错误的。 我有一个JSON文档,其中包含以下元素:

"date": str(datetime.utcnow()), 

问题所在的任何线索?

谢谢,贾尼斯

正如您所猜测的,问题在于您如何插入日期值。 我会引用文档

如果文档中的索引字段不是日期或包含日期值的数组,则文档将不会过期。

您正在将日期转换为字符串。 如果您正在使用pymongo驱动程序,他将很好地处理日期时间并将其转换为MongoDB本机日期类型

这样,以下应该工作:

"date": datetime.utcnow()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM