Требуются ли для выполнения определенных методов в API Мангуста асинхронность / ожидание?

#node.js #mongoose #async-await

Вопрос:

Окружающая среда: Мангуст, Node.js, Атлас MongoDB

Я получаю то, что кажется неожиданным поведением Мангуста. В некоторых случаях API Мангуста не нужен async / await , но в других случаях, похоже, нужен.

Например, как и ожидалось, приведенный ниже код успешно создает новый документ без async / await .

 const TestModel = mongoose.model('testmodel', TestModelSchema);

app.post('/upload', urlEncoded, (req, res) => {

    let { dataName, key1 } = req.body;

    let newDocument = new TestModel({
        dataName, key1
    })

    newDocument.save();  // no await needed here

    res.redirect('/');
});
 

Однако в этом следующем примере .updateOne() база данных не обновляется.

 app.get('/update', (req, res) => {

    TestModel.updateOne({ dataName: 'dog' }, { key1: ''});

    res.redirect('/');
})
 

Когда я включаю async / await базу данных, она обновляется, как и ожидалось.

 app.get('/update', async (req, res) => {

    await TestModel.updateOne({ dataName: 'dog' }, { key1: ''});

    res.redirect('/');
});
 

Я ничего не могу найти в документах об этом поведении. Я упускаю что-то важное?