MongoDB useful commands

Create User

  1. Connect mongodb by typing mongo
  2. Switch to admin database by typing use admin
  3. Create user and password with the appropriate role. Like following:
db.createUser(
  {
    user: "admin",
    pwd: "admin",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)
  1. Then disconnect from the MongoDb shell by typing Ctl+D

Enable authentication

  1. Open /etc/mongod.conf with your favorite editor like vim. Eg. sudo vim /etc/mongod.conf
  2. Now enable the authorization. You may find the following:
security:
  authorization: "disabled"

And change it to 

security:
  authorization: "enabled"
  1. Save and restart the MongoDB using sudo service mongodb restart
  2. 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 the database

  1. Go to the database by typing: use db_name
  2. Query like: db.getUsers()

Change the user password

db.changeUserPassword("username_to_change_pwd", passwordPrompt())

Login with username and password

Command:

mongo database_name -u username -p

Enable Remote Access MongoDB

  1. 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 a 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.

Leave a Comment