使用Pymongo Datetime查询文档

时间:2019-02-26 18:26:21

标签: mongodb-query pymongo

当我在MongoDB Compass中运行以下查询时,我能够获得所需的文档:

{"save_date" : { "$gte" : new Date("2019-02-25T08:01:59"),"$lte":new Date("2019-02-25T08:02:59")}}

但是当我使用pymongo时,我得到了0个文档,我一直在以下2个版本中使用它们,但是它们都没有给我想要的数据,有什么想法吗?

    connection = MongoDbClient("With all the connection parameters")

    start = datetime.datetime.strptime(start_date, '%m-%d-%Y %H:%M:%S')
    end = datetime.datetime.strptime(end_date, '%m-%d-%Y %H:%M:%S')

    connection.database.collection.find({ "save_date": {"$gte" : start, "$lte": end}}).count()

返回了0个文档

以下版本也返回了0个文档

   connection.database.collection.find({ "save_date": {"$gte" : datetime.datetime(2019,2,25,8,1,59), "$lte": datetime.datetime(2019,2,25,8,2,59)}}).count()

1 个答案:

答案 0 :(得分:0)

我猜发现了问题。似乎我将所有日期作为本地数据和时间传递,而该日期范围内没有文档,因此返回了0个文档。现在,我已经将本地日期转换为UTC日期,并且在传递给pymongo之前非常有效,并获得了我的文档。

 local_start="2019-02-25 08:01:59"
 start = time.strftime("%Y-%m-%d %H:%M:%S", 
        time.gmtime(time.mktime(time.strptime(local_start, 
                            "%Y-%m-%d %H:%M:%S"))))