MongoDB, a popular NoSQL database, empowers developers with flexibility and scalability. Whether you’re a beginner or an experienced user, mastering MongoDB useful commands is crucial for efficient data manipulation. In this guide, we’ll dive into essential commands, covering everything from querying documents to managing user authentication.
Create user in MongoDB
- Connect mongodb by typing mongo
- Switch to admin database by typing use admin
- Create user and password with the appropriate role. Like following:
db.createUser(
{
user: "admin",
pwd: "admin",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
- Then disconnect from the MongoDb shell by typing Ctl+D
Enable authentication in MongoDB
- Open /etc/mongod.conf with your favorite editor like vim. Eg. sudo vim /etc/mongod.conf
- Now enable the authorization. You may find the following:
security:
authorization: "disabled"
And change it to
security:
authorization: "enabled"
- Save and restart the MongoDB using sudo service mongodb restart
- Now you can connect to MongoDB using the following:
If you are using mongosh
client then replace mongo
with mongosh
.
mongo mongodb://localhost:27017 -u codersathi -p
Note: You may create other users for a specific database with a specific role
Example:
use test
db.createUser(
{
user: "testuser",
pwd: "testpassword",
roles: [ { role: "readWrite", db: "test" } ]
}
)
This means, creating a testuser
with testpassword
and readWrite
role for test
database.
List all users from MongoDB database
- Go to the database by typing: use db_name
- Query like:
db.getUsers()
Change user password in MongoDB
db.changeUserPassword("username_to_change_pwd", passwordPrompt())
Login with username and password in MongoDB
Command:
mongo database_name -u username -p
Enable MongoDB Remote Access
- To enable remote access to mongodb we need to send the 0.0.0.0 value for bindIp in config /etc/mongod.conf
Change User Role in MongoDB
db.updateUser( "peg",
{
roles: [{role: "dbOwner", db : "peg"} ]
})
Login from remote machine
mongo myhost.com -u username -p --authenticationDatabase authenticationDAtabaseName
List collections
show collections
Create collections
db.createCollection(‘collectionname’)
Rename collections
db.oldCollectionName.renameCollection(‘newCollectionName’)
Insert data in the collection
db.collectionName.insert({‘id’:1, ‘name’:’Virat’}) // Or we can pass any json object db.collectionName.insert(jsonObject)
Drop/Delete database
use dbname // Now delete the database using following query db.dropDatabase()
Warning!
Please use this command wisely. Once the database is deleted you can’t revert it back.