Dayjs в JS Date для Mongo
Мне нужно проанализировать дату, указанную пользователем, в NodeJS. Я нашел ответы, в которых говорилось, что использование встроенного метода конструктора / анализа Date ненадежно, и я должен использовать некоторую библиотеку, такую как Moment. Я был сбит с толку тем, что существуют библиотеки Moment и MomentJS, и обнаружил, что есть крошечная библиотека DaysJS с таким же интерфейсом. Парсинг работает нормально, но я не могу найти способ получить объект JS Date, который мне нужно передать в Mongo. Есть ли другой способ, кроме как извлечь миллисекунды unix и передать их конструктору Date?
Когда я передаю экземпляр daysjs драйверу Mongo NodeJS, он не работает:
const day = dayjs('2020-01-02', 'YYYY-MM-DD');
2020-06-07 10:42:33:093 [error]: Request failedThe dollar ($) prefixed field '$L' in 'info.date.$L' is not valid for storage.
Кажется, это работает:
let publishDate = new Date(1000 * dayjs().unix());
Это правильный способ использования daysjs с Mongo?
1 ответ
Вы получили ошибку, потому что вы пытались передать объект mongodb, который он не поддерживает.
Вы можете передать объект javascript в mongodb. Чтобы преобразовать объект в простой javascript
Date
объект, который вы можете использовать
.toDate()
на
DayJS
объект
dayjs('2020-01-02', 'YYYY-MM-DD').toDate()