Grapeoff
@Grapeoff
В чём концепция...?

Как фильтровать выдачу бд по возрасту, если он хранится в базе данных как дата рождения, а с клиента нужно получать конкретное число/числа?

В базе данных возраст ученика хранится в формате MM-DD-YYYY, но тут появилась нужда фильтровать учеников по возрасту, причём как в Excel.

То есть к нас есть некий массив возрастов из бд, допустим, у нас учатся ученики возраста 13, 14, 15 лет, и эти значения будут выданы нам в качестве значений фильтра, и мы будем отмечать их галочкой. То есть, если мы хотим, чтобы нам в выдачу попали ученики только 14-ти и 15-ти летнего возраста, то мы должны в базе данных искать тех учеников, которые будут соответствовать этому параметру.

Что нужно сделать или переписать чтобы это сработало?
  • Вопрос задан
  • 144 просмотра
Решения вопроса 1
Если храните в тексте, то лучше преобразовать в дату и делать обычные запросы

let dStart = new Date();
let dEnd = new Date();
dStart.setFullYear(dStart.getFullYear() - 15);
dEnd.setFullYear(dEnd.getFullYear() - 13);
db.user.find({birthday: {$gte: dStart, $lt: dEnd}})
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы