MongoDB is an open source, document-oriented database designed with both scalability and developer agility in mind. Instead of storing your data in tables and rows as you would with a relational database, in MongoDB you store JSON-like documents with dynamic schemas. The goal of MongoDB is to bridge the gap between key-value stores (which are fast and scalable) and relational databases (which have rich functionality).
Using BSON (binary JSON), developers can easily map to modern object-oriented languages without a complicated ORM layer. This new data model simplifies coding significantly, and also improves performance by grouping relevant data together internally.
MongoDB maintains many of the great features of a relational database — like indexes and dynamic queries. But by changing the data model from relational to document-oriented, you gain many advantages, including greater agility through flexible schemas and easier horizontal scalability.
Use case of MongoDB
- Document and Content Management Systems
- ECommerce. Several sites are using MongoDB as the core of their ecommerce infrastructure
- Gaming. High performance small read/writes are a good fit for MongoDB
- High volume problems. Problems where a traditional DBMS might be too expensive for the data in question.
- Mobile. Specifically, the server-side infrastructure of mobile systems.
Why use MongoDB?
- Simple queries: MongoDB is a document store with no transactions and no joins. When an application warrants using this type of database, the result is that your queries become much simpler. They are easier to write. They are easier to tune.
- Sharding: If you have lots of data and you are getting disk-bound and/or running out of space, take your data and split it across several machines. You get more disk throughput and more storage