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()
Другие вопросы по тегам