По сути, часовые пояса — отстой, но Mongo спас меня от RSI.

Я использую mongoDB и стек MERN в целом, когда строю:



Я не могу рекомендовать стек достаточно, особенно если вы новичок в изучении кода.

Сегодня…

Я обнаружил ошибку в моем последнем релизе…

Проблема — 04.08.21 была самой важной датой?

Он появлялся наверху везде для всех…

Моим первым, хотя, было: «О господи, нет, больше не будет боли в часовом поясе или что-то в этом роде». Оказывается нет. После долгого выдергивания волос я случайно заметил это:

Ты это видишь? В строке даты отсутствует ноль?!

Исправление — часть 1

У меня есть функции, которые принимают текущую дату и превращают ее в строку ISO, игнорируя часовые пояса. Javascript иногда немного сумасшедший, как мы знаем, но я забыл, и поэтому мне нужно было исправить это с помощью следующих комментариев:

// Months are indexed 0-11
const month = date.getMonth() < 9 ? "0" + (date.getMonth() + 1) : date.getMonth();
// Dates are indexed 1-31
const day = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();

Примечание: жирный шрифт 10 — раньше это была цифра 9…

Эта ошибка затрагивала только 9-е число каждого месяца, хотя, к счастью, я заметил ее раньше.

Исправление — часть 2

Но затем мне нужно было обновить все записи пользователей, которые были неправильно сохранены как 2021-04-9. Помимо создания API для выполнения этого единственного действия, я был немного невежествен…

Некоторое время назад я скачал MongoDB Compass:



Мне это нравится — простой и удобный способ доступа к вашей базе данных. Это помогло мне лучше научиться использовать язык запросов, обрести уверенность в понимании структуры и в целом является хорошим приложением.

Полезный совет.После первого входа в систему обязательно добавьте строку подключения для учетных данных (SRV) в избранное.

Внутри Compass был мой спаситель:

Прямо в нижней части приложения скрыта консоль, оболочка или командная строка. Как бы это не называлось, это здорово.

Расширив его, я могу запускать запросы непосредственно в моей БД. Внезапно, то, что могло быть днем ​​создания одноразового API-интерфейса или ручного просмотра множества записей в базе данных и их обновления, мое время вернулось ко мне.

Очевидно, будьте осторожны — вы запускаете команды на prod! Запустите его на своей предварительной рабочей среде, чтобы сначала убедиться, что он работает. С большой силой приходит большая ответственность, или, как говорят наши друзья-оззи, не будь мудаком.