MongoDB advantages and disadvantages, when to use MongoDB

MongoDB

MongoDB is an open-source document database and leading NoSQL database. MongoDB is developed by MongoDB Inc. and licensed under the Server Side Public License (SSPL).

Advantages of MongoDB

Open Source:

  • MongoDB is free and open source software with a huge development community

High performance:

  • MongoDB’s query speed (find, update, insert, delete) is much faster than relational database management systems (RDBMS).
  • The test shows that MongoDB’s insert speed can be up to 100 times faster than MySQL

Why is MongoDB so high performance? There are the following reasons:

  • MongoDB stores data in JSON format, when you insert multiple objects, it will be inserting a JSON array almost like the case of inserting 1 object.
  • Data in MongoDB does not have mutual constraints like in RDBMS, when inserting, deleting or updating it does not need to take time to check whether the related tables are satisfied as in RDBMS.
  • Data in MongoDB is indexed, so when queried it will find it very quickly.
  • When performing insert, find … MongoDB will lock other operations, for example when it performs find (), during the find process that insert, update, it will stop all to wait for find () to finish. is already.

Flexible data:

  • MongoDB is a document database, data is stored in JSON format, not bound by the number of fields, data types … you can freely insert the data you want.

The Rich Query Language:

  • MongoDB is a rich query language which means it has built-in methods to create, read, update, delete data (CRUD).

Availability:

  • MongoDB supports  replica set  to ensure data backup and restore

Horizontal Scalability:

  • In MongoDB, there is a cluster concept that is a cluster of nodes containing data communicating with each other, when we want to expand the system, we only need to add a node with to the cluster:

 

Disadvantages of MongoDB

  • MongoDB does not have the same binding properties as in RDBMS -> is susceptible to data corruption
  • Joining is not supported like RDBMS, so when writing join function in code, we have to do it manually, making the query speed decrease.
  • Use a lot of memory: Since the data is stored as key-value, the collections only differ in value so the key will be repeated. Joining is not supported, so there will be redundant data (in RDBMS, we only need to save 1 record and then refer to other records in MongoDB)
  • Record size is limited: each document cannot be> 16Mb in size and no degree of child documents in a document can be> 100

MongoDB doesn’t support joins like a relational database. Yet one can use joins functionality by adding by coding it manually. But it may slow execution and affect performance.

When to use MongoDB

MongoDB is used for:

  • Realtime system (real time) requires fast response
  • Bigdata systems with fast query requirements.
  • Systems with large write / insert frequencies
  • Use as a search engine.