Masalahnya adalah bahwa pengguna database sedang dibuat di admin database bukannya dbname .
Menghilangkan /dbname dari string koneksi / mongo shell / etc. berarti string koneksi akan diautentikasi ke admin basis data. Mengutip dokumen:
(https://docs.mongodb.com/manual/reference/connection -string/#komponen ).
Jika /dbname didefinisikan, maka string koneksi akan mengautentikasi terhadap dbname kecuali authSource
parameter dikonfigurasi untuk menentukan database di mana pengguna berada.
Anda dapat mengonfirmasi bahwa ini masalahnya dengan menambahkan authSource=admin ke string koneksi atau --authenticationDatabase admin ke perintah shell mongo
.
Atau, Anda dapat menggunakan db.getUsers() untuk melihat database tempat pengguna dibuat.