by Hieu H
MongoDB is a NoSQL database with qualities of a relational database management system. Of the many NoSQL DBMS’ around, MongoDB is one of the most popularly used by the open source community. One of the main differences is that it is a document-oriented database. Relational databases store data in tables, with columns and rows. Document-oriented databases store the data in separate documents. From a programming point of view, documents are easier to handle and manipulate. Developers can in a sense treat each document as an object.
As a developer, it’s always difficult to keep up with all the new technologies available. I stumbled across MongoDB several months ago and have been playing with it ever since. Although I think MongoDB has many great features, there are still some disadvantages such as the lack of referential integrity support and the inability to join across collections. It’s also not optimal to run a single instance of MongoDB and is preferred to have at least 2 nodes in a cluster.
I find that for smaller applications that aren’t as heavily dependent on databases, MongoDB might not be the right choice. Whenever I work on a new project and am in the stage where we’re deciding on which technologies to use, I always want to go with the latest and greatest. MongoDB might be overkill for say a personal website or blog, although it should work just fine.
Glover, A., (September 28, 2010) MongoDB: A NoSQL datastore with (all the right) RDBMS moves. Retrieved October 2, 2012 from https://www.ibm.com/developerworks/java/library/j-javadev2-12/index.html