@mpotemkin

NodeJS MongoDB поиск между датами. Как? Где?

Здравствуйте!

Суть следющая: отправляю с AngularJS SPA запрос (query) в NodeJS распарсиваю и отправляю на поиск в MongoDB. Никак не могу осуществить посик между определенными датами. Все излазил, все перепробовал. Подскажите, что не так.

вот так принимаю на стороне сервера (NodeJS):
if(req.query.period_start) {
		start_period = new Date().toISOString(req.query.period_start);
		search.period_start = {$gte: start_period};
	}

	if(req.query.period_end) {
		end_period = new Date().toISOString(req.query.period_end);
		search.period_end = {$lte: end_period};
	}

var query = db.itemModel.find(search);


Ни как не ищет. Меня здесь интересют заявки между определенными датами. Но, проверив напрямую в MongoDB shell, так и не понял, почему и там он не хочет искать. Дата записана в ISODate в базе.

Подскажите, куда копать, где ошибка?

Спасибо.
  • Вопрос задан
  • 3055 просмотров
Пригласить эксперта
Ответы на вопрос 2
@lega
1) У Вас в search.period_start и search.period_end всегда текущая дата_время "new Date().toISOString()", поэтому ничего и не "ищет" ("new Date().toISOString(req.query.period_start);" - так не работает).
Проще с клиента тогда присылать преобразованные даты (.toISOString) и на сервере подставлять как есть.
2) В базе даты лучше хранить в Date-формате, а не в текстовом.
Ответ написан
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Дата записана в базе не только в ISOString, но еще и в UTC. То есть надо еще учесть часовой пояс.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы