Я пытаюсь проверить, существует ли документ с определенными полями в базе данных.
У меня есть объект проигрывателя, и я хочу убедиться, что нет другого объекта с таким же именем и фамилией уже в базе данных. Я также хочу проверить, что имя команды еще не указано.
Приведенный ниже код не работает, потому что код в функциях обратного вызова выполняется после оператора if, расположенного под ними, где принимается решение о том, должны ли данные быть сохранены в базе данных на основе значения двух переменных, которые должны быть изменены в функции обратного вызова, если выполняется определенное условие.
Однако эти переменные изменяются после этого оператора if, поэтому мой код не работа.
Вопрос в том. Как заставить функцию обратного вызова выполняться, когда я этого хочу. Или есть лучший способ сделать этот вид проверки?
Это мой код:
let team_exists = false;
let players_exist = false;
Team.count({name: team.name}, function(err, count){
if (count>0){
team_exists = true;
}
});
players.forEach((function(player){
Player.count({name: player.name, surname: player.surname}, function(err, count){
if (count>0){
players_exist = true;
}
})
}))
if(!team_exists && !players_exist){
Player.insertMany(players, function(err){
if(err){
cosole.log(err);
}
})
team.save(function(err){});
}