обратный вызов против обещания монго - PullRequest
1 голос
/ 14 июля 2020

Я изучаю 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?

...