Запрос документов с использованием Pymongo Datetime - PullRequest
0 голосов
/ 26 февраля 2019

Когда я запускаю приведенный ниже запрос в MongoDB Compass, я могу получить нужные документы:

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

Но когда я использую pymongo, я получаю 0 документов, я использую этив следующих двух версиях, и ни одна из них не дает мне данных, которые я хочу, есть идеи, чего не хватает?

    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 голосов
/ 26 февраля 2019

Я думаю, нашел проблему.Похоже, я передавал все даты как локальные данные и время, когда не было документов для этого диапазона дат, следовательно, 0 документов возвращено.Теперь я конвертировал свою местную дату в дату UTC и до перехода в пимонго работал отлично и получил мои документы.

 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"))))
...