What is MongoDB? Architecture, Features & Example

⚡ Smart Summary

MongoDB is a document-oriented NoSQL database used for high-volume data storage, using collections and documents instead of tables and rows. This resource explains MongoDB features, a document example, key architecture components, reasons to use it, data modelling, and how it differs from a relational database.

  • 📄 Document Model: Data is stored as key-value documents inside collections, not tables.
  • 🧩 Flexible Schema: Fields are created on the fly without a predefined structure.
  • 🏗️ Core Components: _id, collection, document, field, cursor, database, and JSON.
  • ⚙️ Why Use It: Ad hoc queries, indexing, replication, and sharding for scale.
  • 🔄 Vs RDBMS: Collections replace tables and embedded documents replace joins.

What is MongoDB

What is MongoDB?

MongoDB is a document-oriented NoSQL database used for high volume data storage. Instead of using tables and rows as in the traditional relational databases, MongoDB makes use of collections and documents. Documents consist of key-value pairs which are the basic unit of data in MongoDB. Collections contain sets of documents and functions, which is the equivalent of relational database tables. MongoDB is a database which came into light around the mid-2000s.

MongoDB Features

  1. Each database contains collections which in turn contain documents. Each document can be different, with a varying number of fields. The size and content of each document can be different from each other.
  2. The document structure is more in line with how developers construct their classes and objects in their respective programming languages. Developers will often say that their classes are not rows and columns but have a clear structure with key-value pairs.
  3. The rows (or documents as called in MongoDB) do not need to have a schema defined beforehand. Instead, the fields can be created on the fly.
  4. The data model available within MongoDB allows you to represent hierarchical relationships, to store arrays, and to store other more complex structures more easily.
  5. Scalability – The MongoDB environments are very scalable. Companies across the world have defined clusters, with some of them running 100+ nodes with around millions of documents within the database.

MongoDB Example

The below example shows how a document can be modeled in MongoDB.

  1. The _id field is added by MongoDB to uniquely identify the document in the collection.
  2. What you can note is that the Order Data (OrderID, Product, and Quantity), which in RDBMS will normally be stored in a separate table, is actually stored as an embedded document in the collection itself in MongoDB. This is one of the key differences in how data is modeled in MongoDB.

MongoDB Example

Key Components of MongoDB Architecture

Below are a few of the common terms used in MongoDB:

  1. _id – This is a field required in every MongoDB document. The _id field represents a unique value in the MongoDB document. The _id field is like the document’s primary key. If you create a new document without an _id field, MongoDB will automatically create the field. So for example, if we see the example of the above customer table, MongoDB will add a 24-digit unique identifier to each document in the collection.
_Id CustomerID CustomerName OrderID
563479cc8a8a4246bd27d784 11 Guru99 111
563479cc7a8a4246bd47d784 22 Trevor Smith 222
563479cc9a8a4246bd57d784 33 Nicole 333
  1. Collection – This is a grouping of MongoDB documents. A collection is the equivalent of a table which is created in any other RDBMS such as Oracle or MS SQL. A collection exists within a single database. As seen from the introduction, collections do not enforce any sort of structure.
  2. Cursor – This is a pointer to the result set of a query. Clients can iterate through a cursor to retrieve results.
  3. Database – This is a container for collections, like in RDBMS wherein it is a container for tables. Each database gets its own set of files on the file system. A MongoDB server can store multiple databases.
  4. Document – A record in a MongoDB collection is basically called a document. The document, in turn, will consist of field names and values.
  5. Field – A name-value pair in a document. A document has zero or more fields. Fields are analogous to columns in relational databases. The following diagram shows an example of Fields with key-value pairs. So in the example below, CustomerID and 11 are one of the key-value pairs defined in the document.

Key Components of MongoDB Architecture

  1. JSON – This is known as JavaScript Object Notation. This is a human-readable, plain text format for expressing structured data. JSON is currently supported in many programming languages.

Just a quick note on the key difference between the _id field and a normal collection field. The _id field is used to uniquely identify the documents in a collection and is automatically added by MongoDB when the collection is created.

Why Use MongoDB?

Below are a few of the reasons as to why one should start using MongoDB:

  1. Document-oriented – Since MongoDB is a NoSQL type database, instead of having data in a relational type format, it stores the data in documents. This makes MongoDB very flexible and adaptable to real business world situations and requirements.
  2. Ad hoc queries – MongoDB supports searching by field, range queries, and regular expression searches. Queries can be made to return specific fields within documents.
  3. Indexing – Indexes can be created to improve the performance of searches within MongoDB. Any field in a MongoDB document can be indexed.
  4. Replication – MongoDB can provide high availability with replica sets. A replica set consists of two or more MongoDB instances. Each replica set member may act in the role of the primary or secondary replica at any time. The primary replica is the main server which interacts with the client and performs all the read/write operations. The secondary replicas maintain a copy of the data of the primary using built-in replication. When a primary replica fails, the replica set automatically switches over to the secondary, and then it becomes the primary server.
  5. Load balancing – MongoDB uses the concept of sharding to scale horizontally by splitting data across multiple MongoDB instances. MongoDB can run over multiple servers, balancing the load and/or duplicating data to keep the system up and running in case of hardware failure.

Data Modelling in MongoDB

As we have seen from the introduction section, the data in MongoDB has a flexible schema. Unlike in SQL databases, where you must have a table’s schema declared before inserting data, MongoDB’s collections do not enforce document structure. This sort of flexibility is what makes MongoDB so powerful.

When modeling data in MongoDB, keep the following things in mind:

  1. What are the needs of the application – Look at the business needs of the application and see what data and the type of data are needed for the application. Based on this, ensure that the structure of the document is decided accordingly.
  2. What are the data retrieval patterns – If you foresee heavy query usage, then consider the use of indexes in your data model to improve the efficiency of queries.
  3. Are frequent inserts, updates, and removals happening in the database? Reconsider the use of indexes or incorporate sharding if required in your data modeling design to improve the efficiency of your overall MongoDB environment.

Difference between MongoDB & RDBMS

Below are some of the key term differences between MongoDB and RDBMS:

RDBMS MongoDB Difference
Table Collection In RDBMS, the table contains the columns and rows which are used to store the data, whereas in MongoDB this same structure is known as a collection. The collection contains documents which in turn contain fields, which in turn are key-value pairs.
Row Document In RDBMS, the row represents a single, implicitly structured data item in a table. In MongoDB, the data is stored in documents.
Column Field In RDBMS, the column denotes a set of data values. These in MongoDB are known as fields.
Joins Embedded documents In RDBMS, data is sometimes spread across various tables, and in order to show a complete view of all data, a join is sometimes formed across tables to get the data. In MongoDB, the data is normally stored in a single collection, but separated by using embedded documents. So there is no concept of joins in MongoDB.

Apart from the terms differences, a few other differences are shown below:

  1. Relational databases are known for enforcing data integrity. This is not an explicit requirement in MongoDB.
  2. RDBMS requires that data be normalized first so that it can prevent orphan records and duplicates. Normalizing data then has the requirement of more tables, which will then result in more table joins, thus requiring more keys and indexes. As databases start to grow, performance can start becoming an issue. Again, this is not an explicit requirement in MongoDB. MongoDB is flexible and does not need the data to be normalized first.

FAQs

MongoDB stores large volumes of unstructured and semi-structured data, making it useful for AI and ML pipelines. Its flexible documents hold training data, feature sets, and model metadata, and Atlas adds vector search for AI apps.

Yes. MongoDB Atlas Vector Search lets you store and query vector embeddings alongside your documents. This supports semantic search, recommendations, and retrieval-augmented generation for AI applications without a separate vector database.

MongoDB Community Edition is free and open source. MongoDB also offers Atlas, a managed cloud service with a free tier, and Enterprise Edition with advanced security and support for a fee.

Many large organizations use MongoDB for high-volume, flexible data storage, including companies in e-commerce, gaming, IoT, and content management. Its scalability through sharding and replication suits applications with millions of documents.

Summarize this post with: