Problem polega na tym, że użytkownik bazy danych jest tworzony na admin baza danych zamiast dbname .
Pominięcie /dbname z ciągu połączenia / mongo shell / etc. oznacza, że ciąg połączenia zostanie uwierzytelniony przez admin Baza danych. Cytując dokumenty:
(https://docs.mongodb.com/manual/reference/connection -string/#komponenty ).
Jeśli /dbname jest zdefiniowany, ciąg połączenia zostanie uwierzytelniony względem dbname chyba że authSource
parametr jest skonfigurowany do określenia bazy danych, w której rezyduje użytkownik.
Możesz to potwierdzić, dodając authSource=admin do ciągu połączenia lub --authenticationDatabase admin do polecenia powłoki mongo
.
Alternatywnie możesz użyć db.getUsers() aby zobaczyć bazę danych, w której utworzono użytkownika.