#python #mongodb #pymongo
#python #mongodb #pymongo
Вопрос:
Кажется, я не могу запрашивать записи и получать то, что ожидаю. Например, я ищу
today = datetime.datetime.today()
past = today timedelta(days=-200)
results = mongo.stuff.find({"date_added": {"gt": past}}, {"id":1})
У меня есть следующая дата, указанная в MongoDB:
"date_added": {
"$date": "2016-04-19T18:47:54.101Z"
},
Но я не получаю никаких результатов! Это связано с часовым поясом, который отображается в дате MongoDB, что все портит.
Ответ №1:
Это просто ошибка ввода:
Попробуйте использовать следующий код:
results = mongo.stuff.find({"date_added": {"$gt": past}}, {"id":1})
Вы забыли о знаке $ в $ gt.
Комментарии:
1. Ах да! Меня все время достает!
Ответ №2:
Используйте осведомленный объект datetime (с информацией о часовом поясе).
# E.g. with UTC timezone :
import pytz
import datetime
today = datetime.datetime.today()
past = today timedelta(days=-200)
pytc.utc.localize(past)
results = mongo.stuff.find({"date_added": {"gt": past}}, {"id":1})
Чтобы использовать другой часовой пояс для локализации, попробуйте что-то вроде pytz.timezone('US/Mountain')
PS вам понадобится pip install pytz
Комментарии:
1. Я пробовал это — любые варианты — но, к сожалению, не сработало.