Intro to MongoDB – A NoSQL Document Database


A Little Background on MongoDB

MongoDB is a child of cloud computing, where boundaries between systems no longer exist and everything is infinitely scalable, or almost. The derivation of the name ‘MongoDB’ from ‘humongous’ already gives you a strong hint about what kind of data store you’re dealing with. Its inventor, the 10gen Company, began building MongoDB in 2007. A version considered suitable for general release first arrived in 2010. Since then, it has become the most popular of the NoSQL databases on offer. It has also accomplished the impressive feat of becoming the fifth most popular database technology out of all the technologies available.

Inside MongoDB

There is no pre-defined data schema in MongoDB, unlike conventional SQL databases. On the other hand, it allows structured BSON objects to be manipulated. Using BSON (binary JSON) formatted data is the way MongoDB takes advantage of the simplicity of JSON (JavaScript Object Notation) data interchange. It then adds more data types (notably date and binary) and improved data storage and traversal. Database fields can be added, deleted, modified or renamed at any moment, which further differentiates MongoDB from SQL databases. These fields can also be embedded in other fields: for example, ‘street’ and ‘town’ fields embedded in an ‘address’ field.

Technical Specifications

MongoDB is written in the object-oriented language of C++ and runs on Linux, Windows, OS X and Solaris. It also runs on cloud platforms that include Amazon EC2, Google Compute Engine, Rackspace Cloud, VMware Cloud Foundry and Windows Azure. Official drivers for MongoDB exist for many popular development environments and programming languages. Licensing for business use is available at three levels. The Basic level with lowest fees offers AGPL (Affero General Public License) usage with sharing of derivative works. The Standard and Enterprise levels use commercial licensing with progressively higher levels of support and security features.

When Should You Choose MongoDB?

Typical uses for MongoDB involve applications that must manage data of different types that change frequently without any complex transactions between objects, together with high availability, performance and scalability. In particular, it is suited to dynamic queries (queries built ‘on demand’ by the application) of frequently written or read data. In additional to database-style usage, MongoDB can also be used as a file store with replication and partitioning over several servers. The GridFS function in MongoDB can be called by other programs to work with files and their content, while MongoDB manages fault tolerance and load-balancing. However, 10gen indicates that MongoDB is not destined for critical transaction environments such as banking.

Who is Using It Today?

Among well-known users of MongoDB are Craigslist, Shutterfly, Forbes and Foursquare. Craigslist stores over 2 billion documents in MongoDB, while Shutterfly stores 18 billion photos. Forbes uses it for storing articles and company data, and other big-name users include Viacom, eBay, the New York Times and CERN for its Large Hadron Collider data aggregation. Foursquare chose initial deployment on Amazon EC2 for storing venues and user check-ins. To keep pace with growing requirements for performance, the company recently migrated MongoDB installations to its own servers.

Leave a Reply

Your email address will not be published. Required fields are marked *


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>