Hvor, dvs. i hvilken database oprettede du brugeren? Typisk oprettes brugere i databasen admin
. Når du opretter forbindelse til en MongoDB, skal du altid angive godkendelsesdatabasen og den database, du kan lide at bruge.
Standardindstillingerne er lidt forvirrende og ikke rigtig konsistente, se denne tabel for at få et overblik:
+----------------------------------------------------------------------------------------+
|Connection string | Authentication | Current |
| | database | database |
+----------------------------------------------------------------------------------------+
|mongo -u <...> -p <...> --authenticationDatabase admin myDB | admin | myDB |
|mongo -u <...> -p <...> myDB | myDB | myDB |
|mongo -u <...> -p <...> --authenticationDatabase admin | admin | test |
|mongo -u <...> -p <...> localhost:27017 | test | test |
|mongo -u <...> -p <...> --host localhost:27017 | admin | test |
|mongo -u <...> -p <...> | admin | test |
+----------------------------------------------------------------------------------------+
Hvis du kan lide at bruge forbindelsesstrengen i URI-format, svarer den til disse:
mongodb://<username>:<password>@hostname/myDB?authSource=admin
mongodb://<username>:<password>@hostname/myDB
mongodb://<username>:<password>@hostname?authSource=admin
mongodb://<username>:<password>@hostname
Jeg gætter på, at du har oprettet brugeren i admin
database, men da du ikke angiver autentificeringsDatabase, mens du opretter forbindelse, indstiller Mongo den som standard til mydatabase
hvor det mislykkes, fordi brugeren ikke eksisterer i databasen mydatabase
.