В настоящее время я работаю над решением, созданным в NodeJS и MongoDB, и оно требует от меня интеграции со сторонним решением через API.Я полагаю, что API разрабатывался разными людьми годами и, похоже, не имеет какого-то стандарта.
Проблема с датами в том, что я получаю их либо вСтрока, в которой не указывается TZ (становится проблемой позже) или EPOCH, который MongoBD отказывается преобразовывать через $ toDate (я предполагаю, что полученное мной число вычисляется не так, как MongoDB, делает это).
Например:
{
"_id" : ObjectId("5c3508a9d2477df82702630d"),
"date" : 1535684400,
"string_date" : "2018-08-31",
}
Теперь я получаю, что мне не хватает трех нулей в поле даты, потому что, если вы попытаетесь «новая Дата (1538449200)», как сейчас,Mongo просто даст вам некоторую дату от 1970 года, а новая дата (1535684400000) выведет правильную дату.
Это небольшое неудобство, очевидно, имеет исправления, я пытался использовать Moment и некоторые другие приемы, чтобы правильно отображать его наинтерфейс и придерживаюсь ключа "string_date", но я чувствую, что это не решение, а временное исправление, так что я до сих пор не нашел долгосрочного решения, которое мне не нужноменя это беспокоит.
Поскольку я автоматизировал извлечение данных, я подумал о том, чтобы поработать с ним, но поскольку я извлекал и использовал функцию массовой обработки Mongo, чтобы минимизировать требования к обработке, я на самом деле не очень люблюитерация тысяч записей просто для добавления 3 нулей.
И что произойдет, если я перевожу string_date из API в Date, если TimeZone потерян, и я застрял с T00: 00: Дата 00.000Z, что означает, что когда я вижу ее с отрицательным часовым поясом, даты отстают на один день позади.
{
"_id" : ObjectId("5c3508a9d2477df82702630d"),
"date" : 1535684400,
"string_date" : ISODate("2018-08-31T00:00:00.000Z")
}
Кто-нибудь испытывал нечто подобное или имеет решение этой незначительной, но глупой проблемы?Я начал считать, что единственное реальное решение этой проблемы - это обработка данных, чтобы убедиться, что они имеют правильное количество нулей, я гуглял и видел, как некоторые люди запускают функции пост-создания на Mongoose (неЯ не знаю, сработает ли это для меня, так как функция массовых операций не из Mongoose), и выполнение запланированного задания, которое время от времени фиксирует часы, не достаточно быстро, так как я постоянно генерирую новые данные поверх одного.которые я массово получаю от API.
ПРИМЕЧАНИЕ: просто добавить три 0 в поле даты недостаточно, так как я вспомнил, что некоторые другие объекты даже не дают мне дату EPOCH, и яЯ застрял с датой только на String.