MongoDB commands

21+ MongoDB commands developers should be aware of in 2022

MongoDB is one of the most popular open-source No-SQL databases. It is a document-based database. In this blog post, I will explain various MongoDB commands. We will also go over and install MongoDB using docker. So let’s get started.

Install MongoDB using the docker

For this demo, I will be using docker to install MongoDB. Follow this link to download docker.

Now let’s verify if the docker is running.

➜  docker --version
Docker version 20.10.3, build 48d30b5

Awesome, now let’s proceed further and pull the mongo official image from dockerhub.

➜ docker pull mongo
Using default tag: latest
latest: Pulling from library/mongo
4bbfd2c87b75: Pull complete
d2e110be24e1: Pull complete
889a7173dcfe: Pull complete
6f6a1a25f35a: Pull complete
e87b34c16538: Pull complete
7099eef4dfe4: Pull complete
29b1d79d3b5b: Pull complete
b5c178e98a5a: Pull complete
ded800e62b93: Pull complete
b09aa2e255f0: Pull complete
c7e0f50ad27a: Pull complete
dcdad63a2ffa: Pull complete
Digest: sha256:482a562bf25f42f02ce589458f72866bbe9eded5b6f8fa5b1213313f0e00bba2
Status: Downloaded newer image for mongo:latest
docker.io/library/mongo:latest

Verify if the docker image gets downloaded

➜  docker images
REPOSITORY                     TAG       IMAGE ID       CREATED        SIZE
mongo                          latest    81a352f64d83   16 hours ago   449MB

Now let’s start the docker container

➜  docker run --name my-mongo -d mongo:latest
659e36f1f2b967c8cb20b1697181d03f43b83468af29c2091de40690601849ca

Type the below command to go inside the docker container

➜  docker exec -it my-mongo /bin/bash
root@659e36f1f2b9:/#

Verify mongo version

root@659e36f1f2b9:/# mongo --version
MongoDB shell version v4.4.6
Build Info: {
    "version": "4.4.6",
    "gitVersion": "72e66213c2c3eab37d9358d5e78ad7f5c1d0d0d7",
    "openSSLVersion": "OpenSSL 1.1.1  11 Sep 2018",
    "modules": [],
    "allocator": "tcmalloc",
    "environment": {
        "distmod": "ubuntu1804",
        "distarch": "x86_64",
        "target_arch": "x86_64"
    }
}
root@659e36f1f2b9:/#

Awesome, you have successfully installed MongoDB; let’s proceed further and see some of the commonly used MongoDB commands.

MongoDB commands

MongoDB has a vibrant command-line interface, using which we can easily interact with MongoDB.This tutorial will see some of the most widely used MongoDB commands.

Type the below command to get inside the mongo shell.

root@659e36f1f2b9:/# mongo
MongoDB shell version v4.4.6
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
................<supressed o/p>............
................<supressed o/p>............
---
>

List Databases

show dbs command will list all the databases present in MongoDB.By default, MongoDB has some system databases created.

> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB

Create new Database

use the <dbname> command will create a new database in MongoDB

> use naivetech
switched to db naivetech

To view the current database

with the help of the db command; we can verify the current database user are in.

 > db
naivetech

Create a new collection

Now let’s create a test collection in the naivetech database

> db.createCollection('test')
{ "ok" : 1 }

List collections in MongoDB

To list all the collections in the mongo naivetech database, type the below command:

> show collections
test

Drop a collection

Let’s drop the test collection that we created earlier

> db.test.drop()
true

Delete a database

To drop any database, switch to that database and type the below command to delete:

> db.dropDatabase()
{ "dropped" : "naivetech", "ok" : 1 }

Insert a document in the MongoDB collection

Now let’s proceed further and create another database, naivetechblog, and a new collection of tech

> use naivetechblog
switched to db naivetechblog
> db.createCollection("tech")
{ "ok" : 1 }

Type the below command to insert a document in the tech collection

> db.tech.insert({
...     'Kind': 'Mobile',
...     'lang': 'iphone 6s',
...     'Rating': 4.2
...  })
WriteResult({ "nInserted" : 1 })
>

Show documents in a MongoDB collection

Let’s list all the documents present in the tech collection

> db.tech.find()
{ "_id" : ObjectId("60c37656a9c3d411ad96c6e6"), "Kind" : "Mobile", "lang" : "iphone 6s", "Rating" : 4.2 }

Pretty command

With MongoDB pretty command, we can print the output in a pretty format

> db.tech.find().pretty()
{
	"_id" : ObjectId("60c37656a9c3d411ad96c6e6"),
	"Kind" : "Mobile",
	"lang" : "iphone 6s",
	"Rating" : 4.2
}
>

Insert many documents in the MongoDB collection

Sometimes we need to insert more than 1 document at one go in our MongoDB collection. With MongoDB insert many command, we can insert multiple documents.

> db.tech.insertMany([
... {
...     'Kind': 'Mobile',
...     'lang': 'iphone 6s',
...     'Rating': 4.2
...  },
... {
...     'Kind': 'laptop',
...     'lang': 'acer',
...     'Rating': 3.9
...  },
...  {
...     'Kind': 'mobile',
...     'lang': 'samsung',
...     'Rating': 4.0
...  },
...  ])
{
	"acknowledged" : true,
	"insertedIds" : [
		ObjectId("60c37883a9c3d411ad96c6e7"),
		ObjectId("60c37883a9c3d411ad96c6e8"),
		ObjectId("60c37883a9c3d411ad96c6e9")
	]
}

Now let’s verify if all documents get created.

> db.tech.find()
{ "_id" : ObjectId("60c37656a9c3d411ad96c6e6"), "Kind" : "Mobile", "lang" : "iphone 6s", "Rating" : 4.2 }
{ "_id" : ObjectId("60c37883a9c3d411ad96c6e7"), "Kind" : "Mobile", "lang" : "iphone 6s", "Rating" : 4.2 }
{ "_id" : ObjectId("60c37883a9c3d411ad96c6e8"), "Kind" : "laptop", "lang" : "acer", "Rating" : 3.9 }
{ "_id" : ObjectId("60c37883a9c3d411ad96c6e9"), "Kind" : "mobile", "lang" : "samsung", "Rating" : 4 }
>

Search MongoDB

With the help of the find command, we can filter out/search the documents. Let’s try to find the documents which contain mobile details.

> db.tech.find({Kind:'Mobile'})
{ "_id" : ObjectId("60c37656a9c3d411ad96c6e6"), "Kind" : "Mobile", "lang" : "iphone 6s", "Rating" : 4.2 }
{ "_id" : ObjectId("60c37883a9c3d411ad96c6e7"), "Kind" : "Mobile", "lang" : "iphone 6s", "Rating" : 4.2 }
>

FindOne command in MongoDB

findOne command displays the first output based on the filter criteria

db.tech.findOne({Kind:'Mobile'})
{
	"_id" : ObjectId("60c37656a9c3d411ad96c6e6"),
	"Kind" : "Mobile",
	"lang" : "iphone 6s",
	"Rating" : 4.2
}
>

Limit command

With the limit command, we can limit the no of documents to be displayed in MongoDB

> db.tech.find().limit(2)
{ "_id" : ObjectId("60c37656a9c3d411ad96c6e6"), "Kind" : "Mobile", "lang" : "iphone 6s", "Rating" : 4.2 }
{ "_id" : ObjectId("60c37883a9c3d411ad96c6e7"), "Kind" : "Mobile", "lang" : "iphone 6s", "Rating" : 4.2 }
>

Count command

Count command Counts the number of rows in the query output. Let’s try to find all documents present in the MongoDB tech database.

> db.tech.find().count()
4

Insert document with different schema in MongoDB

In MongoDB, we can insert data with different schema; we don’t have to stick to any schema while inserting data in mongo collection.

Let’s insert a document in mongo with a different schema than we inserted earlier.

db.tech.insert({
    'Kind': 'Mobile',
    'lang': 'iphone 6s',
    'Build_year': 2013 ,
    'Rating': 4.2
 })

Let’s verify if the data gets inserted.

db.tech.find()
{ "_id" : ObjectId("60c37656a9c3d411ad96c6e6"), "Kind" : "Mobile", "lang" : "iphone 6s", "Rating" : 4.2 }
{ "_id" : ObjectId("60c37883a9c3d411ad96c6e7"), "Kind" : "Mobile", "lang" : "iphone 6s", "Rating" : 4.2 }
{ "_id" : ObjectId("60c37883a9c3d411ad96c6e8"), "Kind" : "laptop", "lang" : "acer", "Rating" : 3.9 }
{ "_id" : ObjectId("60c37883a9c3d411ad96c6e9"), "Kind" : "mobile", "lang" : "samsung", "Rating" : 4 }
{ "_id" : ObjectId("60c38f5ca9c3d411ad96c6ea"), "Kind" : "Mobile", "lang" : "iphone 6s", "Build_year" : 2013, "Rating" : 4.2 }

Update command in MongoDB

The update command modifies the existing document or documents in a collection. With the update command, we can modify specific fields of an existing document or replace an existing document.

This session will see some of the most widely used update commands.

Update a row

Let’s use an update command to update a document where Kind: laptop.

verify the data before updating

> db.tech.find({Kind:'laptop'})
{ "_id" : ObjectId("60c37883a9c3d411ad96c6e8"), "Kind" : "laptop", "lang" : "acer", "Rating" : 3.9

and run the update command

>  db.tech.update({'Kind': 'laptop'},
... {   'Kind': 'laptop',
...     'Brand': 'samsung',
...     'Rating': 4.3
... })
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

Verify if the data gets successfully updated.

> db.tech.find({Kind:'laptop'})
{ "_id" : ObjectId("60c37883a9c3d411ad96c6e8"), "Kind" : "laptop", "Brand" : "samsung", "Rating" : 4.3 }

Update with upsert

upsert flag in the update command inserted a new document in MongoDB if the document does not exist.

>  db.tech.update({'Kind': 'game'},
... {   'Kind': 'game',
...     'Brand': 'sony',
...     'Rating': 4.3
... }, {upsert: true})
WriteResult({
	"nMatched" : 0,
	"nUpserted" : 1,
	"nModified" : 0,
	"_id" : ObjectId("60c3984464d905a23322abb1")
})

We got nUpserted”: 1 in the output, which means the record was not present in MongoDB, and the update command has added it as a new document.

Let’s verify the document.

> db.tech.find()
{ "_id" : ObjectId("60c37656a9c3d411ad96c6e6"), "Kind" : "Mobile", "lang" : "iphone 6s", "Rating" : 4.2 }
{ "_id" : ObjectId("60c37883a9c3d411ad96c6e7"), "Kind" : "Mobile", "lang" : "iphone 6s", "Rating" : 4.2 }
{ "_id" : ObjectId("60c37883a9c3d411ad96c6e8"), "Kind" : "laptop", "Brand" : "vivo", "Rating" : 4.3 }
{ "_id" : ObjectId("60c37883a9c3d411ad96c6e9"), "Kind" : "mobile", "lang" : "samsung", "Rating" : 4 }
{ "_id" : ObjectId("60c38f5ca9c3d411ad96c6ea"), "Kind" : "Mobile", "lang" : "iphone 6s", "Build_year" : 2013, "Rating" : 4.2 }
{ "_id" : ObjectId("60c3984464d905a23322abb1"), "Kind" : "game", "Brand" : "sony", "Rating" : 4.3 }

Inc command

With the inc command, we can update the documents filed by specific value. Let’s run this command and update the build_year by 2.

Document before updating

 db.tech.find({Kind:'Mobile'})
{ "_id" : ObjectId("60c37656a9c3d411ad96c6e6"), "Kind" : "Mobile", "lang" : "iphone 6s", "Rating" : 4.2 }
{ "_id" : ObjectId("60c37883a9c3d411ad96c6e7"), "Kind" : "Mobile", "lang" : "iphone 6s", "Rating" : 4.2 }
{ "_id" : ObjectId("60c38f5ca9c3d411ad96c6ea"), "Kind" : "Mobile", "lang" : "iphone 6s", "Build_year" : 2013, "Rating" : 4.2 }

Now, let’s update the document

> db.tech.update({'Build_year': 2013},
... {$inc:{
...     Build_year: 2
... }})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
>

Now let’s verify the data after the update

db.tech.find({Kind:'Mobile'})
{ "_id" : ObjectId("60c37656a9c3d411ad96c6e6"), "Kind" : "Mobile", "lang" : "iphone 6s", "Rating" : 4.2 }
{ "_id" : ObjectId("60c37883a9c3d411ad96c6e7"), "Kind" : "Mobile", "lang" : "iphone 6s", "Rating" : 4.2 }
{ "_id" : ObjectId("60c38f5ca9c3d411ad96c6ea"), "Kind" : "Mobile", "lang" : "iphone 6s", "Build_year" : 2015, "Rating" : 4.2 }

Rename command

With rename command, we can update the document filed in the MongoDB collection

db.tech.update({'Build_year': 2015},
{$rename:{
    lang: "brand"
}})

verify the data after renamed

> db.tech.find({'Build_year': 2015})
{ "_id" : ObjectId("60c38f5ca9c3d411ad96c6ea"), "Kind" : "Mobile", "Build_year" : 2015, "Rating" : 4.2, "brand" : "iphone 6s" }

The complete list of update commands can be found here

Delete command in MongoDB

We can delete any document from the mongo collection with the delete command. Let’s delete the Kind: game from the tech collection

Data before deletion

db.tech.find()
{ "_id" : ObjectId("60c37656a9c3d411ad96c6e6"), "Kind" : "Mobile", "lang" : "iphone 6s", "Rating" : 4.2 }
{ "_id" : ObjectId("60c37883a9c3d411ad96c6e7"), "Kind" : "Mobile", "lang" : "iphone 6s", "Rating" : 4.2 }
{ "_id" : ObjectId("60c37883a9c3d411ad96c6e8"), "Kind" : "laptop", "Brand" : "vivo", "Rating" : 4.3 }
{ "_id" : ObjectId("60c37883a9c3d411ad96c6e9"), "Kind" : "mobile", "lang" : "samsung", "Rating" : 4 }
{ "_id" : ObjectId("60c38f5ca9c3d411ad96c6ea"), "Kind" : "Mobile", "Build_year" : 2015, "Rating" : 4.2, "brand" : "iphone 6s" }
{ "_id" : ObjectId("60c3984464d905a23322abb1"), "Kind" : "game", "Brand" : "sony", "Rating" : 4.3 }

Delete the document

db.tech.remove({"Kind":"game"})
WriteResult({ "nRemoved" : 1 })

Verify the data after the deletion

db.tech.find()
{ "_id" : ObjectId("60c37656a9c3d411ad96c6e6"), "Kind" : "Mobile", "lang" : "iphone 6s", "Rating" : 4.2 }
{ "_id" : ObjectId("60c37883a9c3d411ad96c6e7"), "Kind" : "Mobile", "lang" : "iphone 6s", "Rating" : 4.2 }
{ "_id" : ObjectId("60c37883a9c3d411ad96c6e8"), "Kind" : "laptop", "Brand" : "vivo", "Rating" : 4.3 }
{ "_id" : ObjectId("60c37883a9c3d411ad96c6e9"), "Kind" : "mobile", "lang" : "samsung", "Rating" : 4 }
{ "_id" : ObjectId("60c38f5ca9c3d411ad96c6ea"), "Kind" : "Mobile", "Build_year" : 2015, "Rating" : 4.2, "brand" : "iphone 6s" }

Less than command in mongoDB

In MongoDB, we can use less than one command to filter out the document based on filter criteria. Let’s filter out the Mobile whose rating is less than 4.2

db.tech.find({Rating: {$lt: 4.2}})
{ "_id" : ObjectId("60c37883a9c3d411ad96c6e9"), "Kind" : "mobile", "lang" : "samsung", "Rating" : 4 }

Less than equal to command in MongoDB

Like less than command, we can use less than equal command in MongoDB to filter out documents.

db.tech.find({Rating: {$lte: 4.2}})
{ "_id" : ObjectId("60c37656a9c3d411ad96c6e6"), "Kind" : "Mobile", "lang" : "iphone 6s", "Rating" : 4.2 }
{ "_id" : ObjectId("60c37883a9c3d411ad96c6e7"), "Kind" : "Mobile", "lang" : "iphone 6s", "Rating" : 4.2 }
{ "_id" : ObjectId("60c37883a9c3d411ad96c6e9"), "Kind" : "mobile", "lang" : "samsung", "Rating" : 4 }
{ "_id" : ObjectId("60c38f5ca9c3d411ad96c6ea"), "Kind" : "Mobile", "Build_year" : 2015, "Rating" : 4.2, "brand" : "iphone 6s" }

Greater than command

Let’s filter out the Mobile whose rating is greater than 4.2

db.tech.find({Rating: {$gt: 4.2}})
{ "_id" : ObjectId("60c37883a9c3d411ad96c6e8"), "Kind" : "laptop", "Brand" : "vivo", "Rating" : 4.3 }

Greater than equal to command

Similar to the greater than command, we can use the greater than equal command in MongoDB to filter out documents.

db.tech.find({Rating: {$gte: 4.2}})
{ "_id" : ObjectId("60c37656a9c3d411ad96c6e6"), "Kind" : "Mobile", "lang" : "iphone 6s", "Rating" : 4.2 }
{ "_id" : ObjectId("60c37883a9c3d411ad96c6e7"), "Kind" : "Mobile", "lang" : "iphone 6s", "Rating" : 4.2 }
{ "_id" : ObjectId("60c37883a9c3d411ad96c6e8"), "Kind" : "laptop", "Brand" : "vivo", "Rating" : 4.3 }
{ "_id" : ObjectId("60c38f5ca9c3d411ad96c6ea"), "Kind" : "Mobile", "Build_year" : 2015, "Rating" : 4.2, "brand" : "iphone 6s" }

Conclusion

I hope you have liked this tutorial. Please do let me know in the comment box. I will be more than happy to hear from you.

More to Read

Docker layers

Which docker base image to use

What docker images are available

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top