MongoDB vs SQL Databases

It is a well known fact that SQL databases have ruled the world of data technologies and have been the primary source of data storage for over 4 decades. Generally the SQL databases are used, mainly for accessing relational databases.

Oracle and Microsoft SQL Server ruled the segment, but as the Web development market paced up, there came a shift towards usage of open source databases like MySQL, Postgres etc. But RDBMS was still the first choice.

Soon enough data started growing exponentially and scalability became a major issue, at that time NoSQL rolled in to save the day.

One of the cool facts about NoSQL databases is that they existed since 1960, but in the recent times they have gained more popularity especially for the scaling feature provided by the same.

The major difference between MongoDB and SQL Databases is the way they handle data. In SQL databases, data is stored in form of traditional 2 dimensional row-column structure while in MongoDB rich data document model is followed, which allows storage of any type of data.

Let us see some of the key differences between MongoDB and other SQL databases :


SQL DatabaseNoSQL Database (MongoDB)
Relational databaseNon-relational database
Supports SQL query languageSupports JSON query language
Table basedCollection based and key-value pair
Row basedDocument based
Column basedField based
Support foreign keyNo support for foreign key
Support for triggersNo Support for triggers
Contains schema which is predefinedContains dynamic schema
Not fit for hierarchical data storageBest fit for hierarchical data storage
Vertically scalable - increasing RAMHorizontally scalable - add more servers
Emphasizes on ACID properties (Atomicity, Consistency, Isolation and Durability)Emphasizes on CAP theorem (Consistency, Availability and Partition tolerance)

MongoDB Documents also align with the structure of objects in modern programming languages, as they are a form of JSON. This makes it easy for developers to map the data used in the application to its associated document in the database. While in SQL Database, creating a table with columns mapped to the attributes of an object in programming language, appears a little tedious.