I have a MongoDB Atlas cluster within which I am trying to simply copy a database within the same instance. Unfortunately, every time I try to run db.copyDatabase() or copydb admin command, I get the following error:
not authorized on admin to execute command
Which is very strange, because I just have one user, and it has access to everything, at least as far as I can tell on atlas (Click to see image here).
I did some search in stackoverflow, but it looked like most of the answers pertain to mongod instances running locally, and not ones running in atlas... Did I setup the user wrong?
this error is because you are trying create the colecction above admin, in atlas this isn't possible because securty.
in this case you need to use the word key use [collection_name]
this is the link for this answer.
it is in spanish.
https://victorroblesweb.es/2016/12/24/crear-una-base-datos-mongodb/
I had the same issue when I was trying to connect to a cluster with Node.js version 3.0 or later and using the link below:
By selecting version 2.2.12 or later and using the link provided, everything went well
I had faced a similar obstacle and spent hours, the problem was with the connection string provided by mongodb atlas which is:
mongodb+srv://username:password@clusterName-jynkd.mongodb.net/test?retryWrites=true
I used a different connection string and worked perfectly. This is it:
mongodb://username:password@clusterName+port/yourdb?retryWrites=true&ssl=true&authSource=admin
. Make sure the clustername + port are like this: clusterName-shard-00-00-jynkd.mongodb.net:27017I ended up asking this question to MongoDB University discussion board. In case anyone comes across this, this is apparently because I am using a free cluster.
In case you have been using mongoose, I solved a similar error updating mongoose to latest version (based on this post).