Table of Contents

MongoDB Essential Commands

Last Updated: 12-15-2020

In this post, I have covered following...

  1. MongoDB find() command
  2. MongoDB update() command
  3. MongoDB distinct() command
  4. MongoDB data dump and restore
  5. MongoDB Drop Database

MongoDB find() Command

Example: Find all documents which has key1 and value1

db.collection1.find({'key1':'value1'})

Example: Find documents using regex

docs = db.collection1.find({'field1':/<val>/})

Note: Value inside the two forward slashes is regex expression.

To ignore case use "i" after the 2nd forward slash

docs = db.collection1.find({'field1':/<val>/i})

Example: How to do find documents with logical OR and AND

Below command will find all the documents where package is not equal to empty "AND" not equal to null

db.collection1.find({"$and":[{"package":{"$ne":""}},{"package":{"$ne":null}}]})

We can also use above command to find distinct documents.

MongoDB update() Command

Example: In the below command, newfield (value = 1) is inserted in the collection - collection 1

db.collection1.update({},{$set : {"newfield":1}},false,true)

Example: Update fields with null values

Lets say for a field "package" we want to update the value where 'package" value is null across all the documents in db.

Below command will update the value of "package" where ever it is null to -1 for all the documents.

db.collection1.update( { "package" : null }, { $set:{ "package" : -1 } }, { multi : true } )

Example: find documents where a specific field does not exist

Lets say, Some of the documents have field1 and some not in a collection. We can find all the documents without field1.

docs = db.collection1.find({'field1':{$exists: false}})

Example: How to rename a field in mongoDB

Lets say we want to update field "package" to "pkg". Use the following command...

db.collection1.update({}, {$rename:{"package":"pkg"}}, false, true)

Example: Add field, value if field does not exist using update() command

Lets say we want to add field "type" if it does not exist and set its value to "notebook". Use the following command...

db.collection1.update({'type':{$exists: false}},{$set : {"type":"notebook"}},false,true)

MongoDB distinct() Command

Example: Find unique values for "field1"

db.collection1.distinct('field1')

Example: Find all the documents which has unique values for 'field2' but also has 'field1'.

docs = db.collection1.distinct('field2',{'field1':<val>})

Result - docs is a list of values of field2

Example: Below command will find all the unique packages where package is not equal to empty "AND" not equal to null

db.collection1.distinct('package',{"$and":[{"package":{"$ne":""}},{"package":{"$ne":null}}]})

How To Take MongoDB Dump Using mongodump

Lets say we have database name test. We can take the dump of whole database to a directory in mongodb using following...

mongodump --db test -o /home/mongoback
2019-12-26T23:43:40.315-0500	writing test.urls to 
2019-12-26T23:43:40.449-0500	done dumping test.urls (21174 documents)


ls /home/mongoback/test/
urls.bson  urls.metadata.json


rm -rf /home/mongoback

Lets say we want to take the dump of a particular collection in mongodb. Use the -c switch for collection.

mongodump --db test -c urls -o /home/mongoback
2019-12-26T23:48:38.840-0500	writing test.urls to 
2019-12-26T23:48:38.907-0500	done dumping test.urls (21174 documents)


ls /home/mongoback/programcreek/
urls.bson  urls.metadata.json

How To Restore MongoDb Data Using mongorestore

Lets say we want to restore back data from the above dump. We can use mongorestore to do that as shown below.

mongorestore --db test test

Where first test is the name of db that we want to create and second test is the directory which contains our db bson and json files. If successful, you should see following output.

2019-12-27T00:19:52.326-0500  the --db and --collection args should only be used when restoring from a BSON file. Other uses are deprecated and will not exist in the future; use --nsInclude instead
2019-12-27T00:19:52.326-0500  building a list of collections to restore from test dir
2019-12-27T00:19:52.327-0500  reading metadata for test.urls from test/urls.metadata.json
2019-12-27T00:19:52.585-0500  restoring test.urls from test/urls.bson
2019-12-27T00:19:52.961-0500  restoring indexes for collection test.urls from metadata
2019-12-27T00:19:53.425-0500  finished restoring test.urls (21174 documents, 0 failures)
2019-12-27T00:19:53.425-0500  21174 document(s) restored successfully. 0 document(s) failed to restore.

We can also specify a particular collection to import only using collection -c switch in the mongorestore command as shown below.

mongorestore -d test -c urls test/urls.bson

How To Drop Database in MongoDB

Let us say, we have database name "test" and we want to drop this database. In your Mongo Shell/REPL do following...

use test;
db.dropDatabase()

You should see following output...

{ "dropped" : "test", "ok" : 1 }

Related Topics:

How to paginate using Mongodb and Django

How to install Mongodb on Centos

Related Posts