Къде, тоест в коя база данни сте създали потребителя? Обикновено потребителите се създават в база данни admin
. Когато се свързвате с MongoDB, винаги трябва да посочвате базата данни за удостоверяване и базата данни, която искате да използвате.
Настройките по подразбиране са малко объркващи и не са последователни, вижте тази таблица, за да получите общ преглед:
+----------------------------------------------------------------------------------------+
|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 |
+----------------------------------------------------------------------------------------+
Ако искате да използвате низ за връзка в URI формат, той ще отговаря на тези:
mongodb://<username>:<password>@hostname/myDB?authSource=admin
mongodb://<username>:<password>@hostname/myDB
mongodb://<username>:<password>@hostname?authSource=admin
mongodb://<username>:<password>@hostname
Предполагам, че сте създали потребителя в admin
база данни, но тъй като не указвате authenticationDatabase по време на свързване, Mongo я задава по подразбиране на mydatabase
където се провали, защото потребител не съществува в базата данни mydatabase
.