HTML5 Datepicker не имеет оболочки ISODate() при сохранении в MongoDB со стеком MEAN. Как сделать запрос?

В поле «planned_depart_date» используется ввод даты в формате html, который используется для выбора даты. Это сохраняется как дата ISO, но не имеет оболочки ISODate() при сохранении в MongoDB. В результате мои запросы на «planned_depart_date» ничего не возвращают. Однако, когда я запрашиваю то же самое, но на «created_at» (у которого есть оболочка ISODate()), это работает.

<input type="date" ng-model='trip.planned_depart_date'>

Так что же происходит? Есть ли способ заставить HTML5 иметь оболочку ISODate()? Если нет, как я могу запросить свою базу данных, чтобы получить эти даты?

Я хочу запросить поездки с запланированной_департ_датой, равной или более поздней, чем сегодня.

введите здесь описание изображения


person Kangze Huang    schedule 23.02.2016    source источник
comment
Возможно, преобразование $scope.trip.planned_depart_date.toISOString(); перед сохранением поможет   -  person Daniel    schedule 23.02.2016


Ответы (2)


Увы, я обнаружил свою глупую ошибку. Обратите внимание на скриншот, что все planned_depart_date являются строками... Моя модель Mongoose принимала planned_depart_date как строку, а не дату.

person Kangze Huang    schedule 23.02.2016

Конструктор ISODate() возвращает объект Date с использованием оболочки ISODate(). Преобразуйте столбец в дату. Затем вы можете запросить как db.trips.find({"planned_depart_date":{$gte:ISODate("2016-01-15T20:57:31.745Z")}})

person Avi    schedule 23.02.2016
comment
К сожалению, это не возвращает никаких результатов из базы данных. Является ли plan_depart_date ISODate? Он похож на один, но без обертки. Когда я пытаюсь просто Date(), он также ничего не возвращает. - person Kangze Huang; 24.02.2016
comment
Да. Столбец plan_depart_date является строкой, а не датой. Он должен иметь оболочку ISODate() для запроса на основе даты. - person Avi; 24.02.2016