Z dokumentacji:
Zapytania Mongoose nie są obietnicami. Mają .then() funkcja co i async/await jako udogodnienie. Jednak w przeciwieństwie do obietnic, wywołanie funkcji .then() w aquery może wykonać zapytanie wiele razy.
Więc w przeciwieństwie do prawdziwej obietnicy, jeśli wywołasz then() wiele razy w zapytaniu, faktycznie wykonujesz zapytanie (lub aktualizujesz) wiele razy.
Jeśli chcesz rzeczywistej obietnicy, wywołaj exec() w zapytaniu.
let promise = Test.findOne({}).exec();