Вопрос При анализе строки в качестве даты в MongoDB рекомендуется использовать реализацию?MongoDB Date and ISODate Parsing
Я спрашиваю об этом, потому что у нас есть поставщики, отправляющие нам строковое представление даты в формате «2017-01-01» и «2017/01/01». Я бы подумал, что разбор этих разных строк вернет тот же результат в MongoDB, используя Date() и ISODate().
Учитывая следующие примеры пробегая MongoChef против MongoDB 3.4
1. print(new Date("2016-01-01"))
2. print(new Date("2016/01/01"))
3. print(new ISODate("2016-01-01"))
4. print(new ISODate("2016/01/01"))
дает следующие результаты
1. Thu Dec 31 2015 18:00:00 GMT-0600 (Central Standard Time)
2. Fri Jan 01 2016 00:00:00 GMT-0600 (Central Standard Time)
3. Thu Dec 31 2015 18:00:00 GMT-0600 (Central Standard Time)
4. 2017-01-06T10:34:01.814-0600 E QUERY [thread1] Error: invalid ISO date
Это не имеет никакого смысла для меня. Любой, кто мог бы объяснить это мне, был бы очень благодарен.
Единственное, что приемлемо для меня, это вариант № 2, поэтому я гарантирую, что наши даты разделены «/» и используют новый конструктор Date().