For most of the applications built in this world, a database is an important part and requires the most attention. Typically when we say database, the picture that comes in front of our eyes is the RDMS tables, then comes the relational algebra, E-R diagrams etc. Everything looks clean but there is a problem and that is "JOINS" ….. yaaakkk…
Now, what if I tell you that there is something which is neat and clean as an RDBMS which has no joins in it.Yes, something of that sort already exists in this world and that is MongoDB.
The world is moving towards NoSQL and MongoDB has been one of the biggest contributors in this direction. First of all, why should you support NoSQL? the reasons are many. Let me explain in terms of MongoDB.
1. Storage of data as in real world. You can easily link between your business objects and the database collections and tables.
2. Most of the database inserts/updates/Query time is wasted in joins. Performance is the key in present day applications and joins are real killers. Mongo has no joins. Related objects are stored in the embedded format which is like a predefined join.
3. How many times have you changed your RDBMS table structure and ended up fixing issues because of that? It's a painful task. In MongoDB, that problem is gone. It's schema free. That actually means,each document(row) in a collection(table) can have different structures. So it is a real bonus if you are working for a startup/college project/ proof of concept project, where things are extremely agile.
4. It's free. And you need not worry about cost and complexities of deploying it either. There are many cloud providers like Amazon EC2, RedHat, VmVare cloud foundry(free), etc. And there are many small guys as well.
5. Good driver support. There is java(native and ORM), ruby, c++, python, Perl, mongodbPHP drivers available already. I'm using Morphia which is a kind of Hibernate for MongoDB.
6. Proven track record. Some successful companies like FourSquare, SourceForge, GitHub are using.
7. Good user community and community support offered by 10gen (the MongoDB company developing and sMongoDB).
8. Finally, it's something new. We also enjoy learning new things, don't we?
I have been using MongoDB for the past 2-3 months and I'm already in love with it and even you would be. I don't want to tell you guys on how to use MongoDB for 2 reasons, one being there is a lot of online content already and another reason is even I am a beginner.
Would post few more things as I learn. Thanks