MongoDB is a cross-platform, open-source, and document-oriented NoSQL database. This technology was released in 2009 and it is the most widely used NoSQL database.
NoSQL stands for "Not-Only-SQL". MongoDB is categorized as a document database, along with other types of NoSQL databases such as key-value databases (Redis), column-oriented databases (Apache Cassandra), and graph databases (Neo4j).
MongoDB's architecture is based on three layers:
Database: "It is also called the physical container for data. Every database has its own set of files existing on the file system. In a single MongoDB server, there are multiple databases present." What is MongoDB? - Introduction to MongoDB Architecture & Features (mindmajix.com)
Collection: It stores multiple documents, and each document can have a different structure.
Document: It represents individual records within a collection. MongoDB stores this information in BSON (Binary JSON) format, which is a binary-encoded representation of JSON. BSON includes multiple types such as: Array, Date, Float and Object.
NoSQL databases, also known as non-relational databases, differ from the RDBMS (relational database management system) model in several ways:
RDBMS schema is fixed and cannot be easily changed, while MongoDB is schema-less, which stores data in flexible, JSON-like documents.
RDBMS is table-based with rows and columns, whereas MongoDB is document-based.
RDBMS allows JOIN operations to query data across tables and requires data to be normalised. Instead, MongoDB doesn't support joins and doesn't require normalization.
RBDMS is designed to be vertically scalable by adding more resources on a single server. MongoDB is designed to be horizontally scalable, increasing its performance by adding more servers.
MongoDB has diverse applications: Big Data, Artificial Intelligence, Mobile Apps, Real-Time Analytics, Internet Of Things, Gaming, Web applications, Serverless Development and much more.
What are the advantages of using MongoDB:
"MongoDB is a distributed database at its core, so high availability, horizontal scaling, and geographic distribution are built in and easy to use" What Is MongoDB? | MongoDB
It supports indexing for document fields which can improve query performance.
Data redundancy through replica sets to ensure high availability.
Provides ad-hoc and document-based queries for manipulating data.
Sharding allows data distribution across multiple servers or clusters which can handle high traffic and failure recovery.
Dynamic and flexible schema design to store documents.
"MongoDB supports multi-document ACID transactions for the use cases that require them." ACID Properties In DBMS Explained | MongoDB | MongoDB
And the disadvantages:
It can be challenging to work with complex document relationships that may require SQL joins.
Querying large data sets and using in-memory indexes for query performance can lead to high-memory usage.
MongoDB's default configuration prioritizes performance and availability but may not be suitable for applications that require strong data consistency.
Check out my video:
Comments