Я изучаю mongodb и наткнулся на проблему. Я не могу понять, почему функция обратного вызова не позволяет выполнить обещание, и я получаю deleteCount 0. Предположим, у меня есть 2 элемента в моей коллекции «пользователей»: 1.
User.deleteMany()
.then(result => console.log(result.deletedCount)) // 2 this works fine.
В этой ситуации я снова добавляю 2 элемента в свою коллекцию «пользователей», но получаю 0 удаленных:
User.deleteMany({}, function(err){
if(err){
console.log(err);
}
}).then(result => console.log(result.deletedCount)) // 0
когда я добавляю «результат» в качестве второго аргумента в обратный вызов, он работает нормально, но без обещания:
User.deleteMany({}, function(err, result){
if(err){
console.log(err);
}
console.log(`Deleted ${result.deletedCount} items.`); // 2
})
Итак, почему я попал в # 2 deletedCount == 0?