У меня небольшие проблемы с представлением данных в голове, по этому пишу сюда.
Как найти всех людей, которым сейчас Х лет? Возраст в базе данных хранится как дата рождения в формате ISO.
Мне нужно составить запрос, чтобы найти всех людей, которым сейчас сколько-то лет, допустим, 16.
Какая нижняя граница даты и какая верхняя?
Можно ли считать нижней границей 1 января 2005 года, или могут существовать люди, которые родились в 2004 году, но им всё ещё 16 лет?
Тогда верхняя граница это 31 декабря 2005 года? или это не охватывает всех возможных шестнадцатилетних? или наоборот, в выдачу попадут ещё и 17-летние?
Тогда получается как-то так:
people.find({
age: {$gte: new Date(new Date().getFullYear() - age, 0, 1), $lt: new Date(2005, 11, 31)}
})
Голова отказывается работать... Возможно стоит поспать.