Why MongoDB?

MongoDB is an open-source, object-oriented, dynamic and scalable database. MongoDB is based on document store model, which do not follow the complex schema of RDBMS. It stores the data object in separate document inside a collection while collection can contain the different structure of the document. A document stored data as JSON or BSON object. MongoBD is simple and easy to install on a system which provides high performance, high availability, and auto-scaling. MongoDB supports to Windows, Linux, Mac OS X, and Solaris operating systems.



Every technology has there pros and cons and we choose the technology as per your requirement. Some pros and cons have been described below.

Pros

Document Oriented: As we know mongoDB is a document oriented database which stored data in JSON or BSON format which very close to what you will be dealing with both server side and client side script.

High Performance: mongoDB is the one highest performance database available. Currently, everybody wants fast accessing of website and application so we need as a high-performance database in the backend. mongoDB is the best option for this. It has attribute label indexing, JSON query, covered query etc which make rich to mongoDB for accessing.

High availability: mongoDB provides easy replication model which maintains scalability to keep performance high.

High Scalability:  MongoDB’s structure makes it easy to scale horizontally by sharding the data across multiple servers.

No Rigid Schema:mongoDB does not follow the complex schema structure.

Flexible: Field addition/deletion has less or no impact on the application.

No Joins: MongoDB does not follow the RDBMS structure, so not possible joins. Joins decrease the performance in RDBMS.

Cloud distributions: Cloud distribution such as AWS, Microsoft, RedHat, dotCloud and SoftLayer etc.. In fact, MongoDB is built for the cloud. Its native scale-out architecture, enabled by ‘sharding,’ aligns well with the horizontal scaling and agility afforded by cloud computing.

Cons

1- You can not apply transaction (ACID property) like RDBMS.
2- No function or Stored Procedure exists where you can bind the logic

Good for

1- E-commerce product catalog
2- Blogs and Content Management
3- Real-time analytics and high-speed logging, caching and high scalability
4- Configuration Management
5- Maintain location-based data – Geospatial data
6- Mobile and Social networking sites
7- Evolving data requirements
8- Loosely coupled objectives – the design may change by over time

Not good for

1- Highly transactional system and data model is designed upfront

2- Tightly coupled systems