美文网首页
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