美文网首页
pymongo存ISODate类型数据

pymongo存ISODate类型数据

作者: 萌木盖 | 来源:发表于2019-04-11 14:11 被阅读0次

出现的问题:

mongo数据设置了ttl,但是数据并没有被删除,我们也确实存放了time,但是就是不自动清理

问题原因:

pymongo的插入代码是:

ti = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
mongo_object.insert_one({"time":ti})

插入的时间是字符串格式,并不是时间格式。不同点看图:


mongo数据

解决办法:

ttl需要的是date类型的,所以我们需要插入date类型的数据:

import dateutil.parser
mg=mongo对象
#插入当前时间
mg.insert({"a":2,"time":dateutil.parser.parse(datetime.datetime.utcnow().isoformat())})
#插入指定时间
mg.insert({"a":3,"time":dateutil.parser.parse("2018-06-12 00:00:00")})

取值

条件里也要处理一下:

last_day = (datetime.datetime.today() ).strftime("%Y-%m-%d")
start = '{} 00:00:00'.format(last_day)
end = '{} 23:59:59'.format(last_day)
con = {

    'time': {'$gte': dateutil.parser.parse(start), '$lte': dateutil.parser.parse(end)}
}
print(con)
for i in mg.find(con):
    print(i.get("time"))

相关文章

网友评论

      本文标题:pymongo存ISODate类型数据

      本文链接:https://www.haomeiwen.com/subject/mpbziqtx.html