Từ tài liệu:
Truy vấn Mongoose không phải là lời hứa. Chúng có
.then()
chức năng cho coand async / await như một sự tiện lợi. Tuy nhiên, không giống như những lời hứa, việc gọi.then()
của aquery có thể thực hiện truy vấn nhiều lần.
Vì vậy, không giống như một lời hứa thực tế, nếu bạn gọi then()
nhiều lần trên truy vấn, bạn thực sự thực hiện truy vấn (hoặc cập nhật) nhiều lần.
Nếu bạn muốn có một lời hứa thực sự, hãy gọi exec()
trên truy vấn.
let promise = Test.findOne({}).exec();