Фильтрация пользовательских данных с максимальным возрастом и минимальным возрастом, в то время как дата рождения присутствует в схеме - PullRequest
0 голосов
/ 07 июня 2019

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

const userSchema = new mongoose.Schema({
name: { type: String, required: false },
bnr: {type: String, required: false},
firstname : {type: String, required: false},
lastname : {type: String, required: false},
profilepic: String,
dob: {type: Date, required:true}
},{timestamps: true}}

1 Ответ

2 голосов
/ 07 июня 2019

Вы можете использовать пользовательскую функцию для определения возраста, используя DOB.В вашей функции фильтрации, в которой вы фильтруете Возраст по MAX или MIN, вызовите эту функцию из вашего контроллера:

function getAge(DOB) {
    var today = new Date();
    var birthDate = new Date(DOB);
    var age = today.getFullYear() - birthDate.getFullYear();
    var m = today.getMonth() - birthDate.getMonth();
    if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {
        age = age - 1;
    }

    return age;
}

Это вернет Возраст.Например, я создаю фиктивные функции:

function filter(res, req, next){
   var age = getAge(res.DOB);
   //and the your max or min calculations...
}
...