Ada masalah yang Anda alami berasal dari baris ini:
await client.close();
Dari dokumen:
Artinya ketika Anda close
klien, koneksi terbuka lainnya juga akan ditutup. Dalam kasus Anda #2 dan #4 mulai berjalan segera setelah #1 dan #3 (tetapi sebelum selesai), dan Anda menutup koneksi saat mereka masih berjalan.
Juga dari dokumen:
Ini akan menjadi praktik terbaik untuk memiliki beberapa manajemen status untuk fungsi stateless Anda (saya tahu), memiliki layanan koneksi yang hanya memberikan fungsi stateless Anda koneksi, juga akan lebih mudah untuk mengelola kesalahan dengan cara ini.
Baca lebih lanjut tentang ini di sini dan di dokumen driver nodejs
Solusi cepat (dan sangat suboptimal) untuk masalah Anda adalah dengan mendefinisikan koneksi dalam fungsi seperti ini:
// remove the definition from here
export default async (req, res) => {
// and move it here
const client = new MongoClient(process.env.DB_URI, {});
await client.connect();
.....
await client.close();
};