Я создаю приложение, в котором пользователи могут находиться в разных часовых поясах, а выполняемые мной запросы чувствительны к их часовым поясам.
Проблема, с которой я столкнулся, заключается в том, что MongoDB, похоже, игнорирует часовой пояс по запросу!
Это пример поля даты "2019-09-29T23: 52: 13.495000 + 13: 00", вот полное json:
И это пример запроса:
{
"at": {
"$gte": "2019-09-29T00:00:00+00:00",
"$lte": "2019-09-30T00:00:00+00:00"
}
}
Все мои даты сохраняются с +12 или +13, потому что это часовые пояса, в которых мои клиенты находятся в данный момент, По сути, это означает, что для вышеприведенного запроса я должен увидеть некоторые результаты с 2019-10-01: 00: 00: 00 + 13: 00, поскольку первое октября по-прежнему 30 сентября в UT C. , и я не.
Я новичок в этом и не слишком далеко вниз по кроличьей норе, так что я открыт для рефакторинга / изменения мышления, если это облегчит ситуацию.
Для контекста, если это имеет значение, я использую PyMon go, и моя версия MongoDB 4.2
РЕДАКТИРОВАТЬ! Я пытался преобразовать поле "at" в дату, но часовой пояс, кажется, был подавлен или не виден
С этим мне также пришлось изменить способ, которым я запрос
{ "at": {
"$gte": ISODate("2019-09-29T00:00:00+00:00"),
"$lte": ISODate("2019-09-30T00:00:00+00:00")
}
}
не помог