По сути, часовые пояса — отстой, но 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! Запустите его на своей предварительной рабочей среде, чтобы сначала убедиться, что он работает. С большой силой приходит большая ответственность, или, как говорят наши друзья-оззи, не будь мудаком.