Onde, ou seja, em qual banco de dados você criou o usuário? Normalmente os usuários são criados no banco de dados
admin
. Quando você se conecta a um MongoDB, deve sempre especificar o banco de dados de autenticação e o banco de dados que deseja usar. Os padrões são um pouco confusos e não muito consistentes, veja esta tabela para obter uma visão geral:
+----------------------------------------------------------------------------------------+
|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 |
+----------------------------------------------------------------------------------------+
Se você gosta de usar a string de conexão no formato URI, ela corresponderia a estas:
mongodb://<username>:<password>@hostname/myDB?authSource=admin
mongodb://<username>:<password>@hostname/myDB
mongodb://<username>:<password>@hostname?authSource=admin
mongodb://<username>:<password>@hostname
Acho que você criou o usuário em
admin
database, mas como você não especifica authenticationDatabase durante a conexão, o Mongo o padroniza para mydatabase
onde falha, porque o usuário não existe no banco de dados mydatabase
.