MongoDB is an open source database which adopts a document oriented data model for its functioning. It was devised by Dwight Merriman and Eliot Horowitz when they were facing development and scalability issues with traditional relational database approaches while building web applications for an internet advertising company named Double Click which is now owned by Google Inc.
According to the creator Dwight Merriman, the name of the database was derived from the word 'humongous' to serve the idea of supporting large amount of data. Merriman & Horrowitz helped form 10GenInc. in 2007 to commercialize MongoDB and its related software's. The company was renamed to MongoDB Inc. in 2013.
This database is a document database with flexibility and scalability required for all the querying and indexing. Instead of using tables and rows which is the case in relational databases, MongoDB is constructed on architecture of collections and documents. These documents comprise of sets of key value pairs and serve as the basic unit data in MongoDB. On the other hand, collection contains sets of documents and functions as equivalent of relational database tables.
MongoDB supports dynamic schema design just like NOSQL databases, which allows the documents in a collection having different fields and structures.
The Mongo database was released to open source in the year 2009 and is available under the terms of the free software foundation GNU AGPL Version 3.0 commercial license.
Features of this database are:
- Indexing: Fields in this database document can be indexed with primary and secondary indices.
- Replication: MongoDB Contributes high availability with replica sets. A replica set includes two or more copies of data.
- Load Balancing: MongoDB scales horizontally using sharding. It can run on multiple servers which helps to balance the load and also duplicating the data for keeping the system up and running in case of hardware failure.
- File storage: It can be utilized as a file system which includes load balancing and data replication features over multiple machines for storing files.
- Aggregation: The framework enables user to obtain the kind of results for which the SQL group by clause is used.
- Capped Collections: MongoDB supports fixed size collections called capped collections.
Main purpose for which MongoDB is built:
- Improve Scalability
- Improve Performance
- High Availability
- Scaling switched from single server deployments to complex and large multi-site architectures.
Key points of MongoDB
- Develops quicker
- Deploys faster
- Scale is large
Companies using MongoDB
- Craigslist uses MongoDB for archiving data
- CERN Physics Lab uses MongoDB in their organization for data aggregation & discovery
- New York Times Newspapers uses MongoDB in their organization to support a form-building application for photo submission.