MongoDB

Top MongoDB Interview Questions

MongoDB is an open-source NoSQL database management system; it not only provides ease in storing unstructured data but also manages it. Whenever the question arises of how to manage millions of rows of unstructured data, MongoDB is recommended.

MongoDB’s first version was released in February 2007 by 10gen Software company, later in 2013, 10gen changed the company name to MongoDB Inc.

MongoDB is a NoSQL database that is used to store data in the JSON documents form because of this feature, a massive amount of unstructured data can easily be stored and managed in MongoDB. The set of these documents having the data are known as collections. And these collections are similar to the tables which are used in relational databases to store data.

There are many reasons why MongoDB is so popular as compared to other relational and NoSQL databases, some of them are:

  • Developers can define the structure according to the key-value pairs
  • Like relational databases, rows and columns are not needed for the data
  • The MongoDB structure hierarchical allows to store data in arrays form and also can store complex data
  • It makes its developers manage databases easily as it supports multiple programming languages
  • It also supports the features of gridFS and replication

Because of its popularity, there are a lot of job opportunities for the developers who are working with MongoDB. This article is related to the questions which are most important and commonly asked by many top-rated organizations.

MongoDB interview questions

The most frequently asked questions are divided into three levels: Basic level, Intermediate level, and Expert level.

Basic Level

These questions are related to the basic concepts and terminologies of MongoDB, and in an interview, it is expected that every candidate should answer these questions.

Question 1: what do You know about NoSQL databases and their types?
NoSQL databases are those databases that don’t store data in tables as SQL databases do instead of that they store data in other forms like documents and key-value forms.

There are four important types of NoSQL databases:

  • Document databases: These databases store data in the form of JSON documents, these documents combine to form collections, and these collections combine to form a database.
  • Key-value databases: These databases store the data in the form of key-values, for example, “Name = John”, in this example “Name” is key, and “John” is value.
  • Wide-column store: These databases store data in the form of dynamic tables, unlike relational databases, these tables are not structured.
  • Graph databases: These databases contain edges and nodes; nodes are used to store information whereas edges are used to show relationships among the nodes.

Question 2: which type of NoSQL database MongoDB is?
The MongoDB database belongs to the document databases, which means it stores data according to the JSON documents. It does not follow any schema and allows the insertion of any type of data in it.

Question 3: Which one is better among MongoDB and SQL databases?
MongoDB is better than SQL databases in such a way that it can handle unstructured data whereas SQL databases only handle structured data and store it without any restriction unlike in relational databases. Because of its feature of schemaless, queries are handled fastly in MongoDB as compared to the SQL databases as the data is not placed in the form of tables and in a number of tables instead of that, data is placed in the same place so it is easy for the query to access the data, and MongoDB allows its data to be mapped in other programming languages which provides ease for its users to work on it.

Question 4: What is a document and collection in MongoDB?
The data is stored in MongoDB in the form of documents, then these documents combine to form a collection, and a number of collections combine to form a database. To understand this, consider an example of a database of school_data, a database of the school_data contains collections that have classes_data in them, and further, these documents (classes_data) contain the data of students (student_data) in the form of documents.

Question 5: What are MongoDB data types?
There are many data types that MongoDB supports:

String String data type stores data in the form of alphabets/ characters and it must be of 8 bytes and belong to UTF-8, for example, Jone.
Integer It stores numbers up to 64 bit but the size can vary depending on the server, for example, 1,54.
Boolean This is used to store boolean values which can either be 0 or 1, for example, John is in class? Its answer either be yes or no.
Double This stores floating numbers like 22.8.
Min/Max keys It is used to compare min and max values.
Arrays This is used to store arrays or multiple values in one key.
Timestamp When any document is modified it can keep the records of modifications.
Object This store the embedded documents
Null It stores null values.
Symbol This is the type of string and can store those languages which are related to the symbols
Date The current time and date can be stored in these data types
Object ID Documents have uniques ids, these ids can be stored in this data type
Binary data Binary data which is also known as machine language is stored in it.
Code Javascript codes are stored in documents with the help of this data type
Regular expression Any expression can be stored in this data type

Question 6: What are the alternatives to MongoDB?
MongoDB is a type of NoSQL database, with the help of which large distributed data is stored in the BSON documents. The alternatives of MongoDB can be Amazon DynamoDB, Microsoft Azure Cosmos DB, Couchbase, PostgreSQL, Redis, and Cassandra.

Intermediate Level

These questions are more related to the advanced concepts than to the basics and in an interview, it is expected that an average candidate should answer these questions.

Question 7: How can we compare MongoDB and SQL at a high level?
SQL databases are relational databases that stored data in a well-structured and organized way in the form of rows and columns which make tables, on the other hand, MongoDB databases are the NoSQL databases, which store data in the documents, these documents are collectively known as collections, and these collections combine to form a database. 

Question 8: Are there any functionalities like ACID transaction management and locking in MongoDB?
No, by default MongoDB does not provide any ACID transaction on multi-documents, however, it can provide the support of ACID transactions on a single document.

Question 9: What is indexing in MongoDB?
In MongoDB, the index is a special data structure that occupies some fields of the database and holds some data to make an index.  The index improves the searching ability of the database, instead of searching a particular thing from a lot of documents, a user can directly go to the specified document with the help of indexing.

{
          Student_id = 1
          Student_name = ‘Paul’
          Country = “USA”
}

In the above example, the “Student_id =1” is an index, so if anyone searches either by Student_id or 1, the following document will be opened.

Question 10: In MongoDB, Can an index be created on an array field?

Yes, we can create an index on an array field in MongoDB, and it indexes each value of the array. In fact, MongoDB by itself creates the multikey index and you do not need to specify it if any index field is an array.

Question 11: Is it possible to run multiple Javascript operations in a single MongoDB instance?
It is possible to run multiple Javascript operations in a single mongod instance because in the 2.4 version of MongoDB V8 javascript engine is added.

Question 12: What is journaling in MongoDB?
When the journaling is enabled in MongoDB, it creates a subdirectory of Journal, within the directory of /data/db, which is the path defined by dbPath, by default. While journaling is running, the MongoDB edits and stores the data in memory and on disk, before the data changes are transferred to disk. It is very helpful in case there is any error occurred due to which changes in data have not been saved, the MongoDB can retrieve the changes from the Journal file and can ensure the durability of files.

Expert Level

These questions are related to the more advanced concepts of MongoDB, it is expected that an expertise candidate should answer these questions.

Question 13: What is the MongoDB sharding process?
In MongoDB, sharding is the process of distributing the data of a huge database among many MongoDB servers. So it is easy to handle the data and also can respond to the queries with a high speed. MongoDB supports horizontal scaling through sharding.

The MongoDB cluster consists of three parts which are shards; it is also known as the replica and is available on every server, mangos; they act as the interpreter between the server and the shard, and config servers; they store the configuration settings of the cluster and metadata.

Question 14: What is scale-out and how does it occur in MongoDB?
When there is a lot of data on a single node, the multiple nodes bring near to the loaded node, to distribute its load. This process of sharing a load of a single node to different nodes is called scale-out and is also known as horizontal scaling.

Question 15: How we can get information on the query plans by using MongoDB query language?
The explain() command is used and it supports the modes which are “allPlansExecution, executionStats, and queryPlanner”. For example:

db.restaurants.explain("executionStats").find(
   { "cuisine": 1, "borough": "Brooklyn"}
);

In the above example, the data of the restaurant is retrieved from the explain() command.

Question 16: Explain MongoDB Aggregation Framework.
In MongoDB, fetching data from different collections and after computation returning a combined result known as the Aggregation. It has three steps, first, it will take the input and filter the documents which we need from the documents using the $match(), then we do the aggregation job on the filtered information using $group(), and finally, we sort our results using the $sort().

Question 17: Is it possible to lock more than one database using MongoDB operation?
Yes, MongoDB can lock more than one database, to lock multiple databases instantly, we use the MongoDB operation db.copyDatabase(), whereas the operation, db.repairDatabase() apply a global lock on editing the database and also restrict other operations to be implemented until it is being removed.

Question 18: What is GridFS in MongoDB?
Large files which exceed the 16 MBs like images, video files, and audio files are managed in MongoDB by using the GridFS and stored in parts and chunks of the file instead of a single document, by default MongoDB supports only two formats that are fs.files and fs.chunks to store chunks and metadata of files.

Question 19: How can you describe replication phenomena in MongoDB?
Replication is the process of synchronizing data among many servers, whereas MongoDB copies the data and replicates it to different servers, so in case of a server crash, the data can be retrieved from any other server which ensures the security of data.

Question 20: What is Mongo Shell?
A mongo shell is a JavaScript platform, through which we can interact with MongoDB and can also make modifications in the data using the queries. It is also used for administrative purposes like maintaining the database instances.  By default, mongo shell is included in the installation file but if it is not installed, you can install it from the MongoDB server.

Conclusion

MongoDB is a popular NoSQL database, which is used to manage data in the form of documents and it is very easy to handle as it is schemaless. It is used by many well-known companies like Twitter and Facebook. Because of its popularity, there are numerous job opportunities for the developers who are working in the MongoDB interface. In this article, the most frequently asked MongoDB interview questions have been shared with their appropriate answers.

About the author

Hammad Zahid

I'm an Engineering graduate and my passion for IT has brought me to Linux. Now here I'm learning and sharing my knowledge with the world.