Currently in IT market the trends is migrating from Sql to No sql databases.Already we have plenty of Nosql open source databases in market but recently many developers,DBA are showing more interest towards MongoDB.That the reason i came up with this blog to share some of research knowledge on MongoDB.
MongoDB is a Open Source document-oriented,highly scalable,non-relational database with No Sql which is developed by 10 gen Company and written in c++. The Performance of MongoDb is faster than RDBMS. Its flexible and reliable than RDBMS.MongoDB is always returns the document in JSON like format which speed up the query execution process.
To Download MongoDB follow up : http://www.mongodb.org/downloads
You can download 32-bit or 64-bit version of Mongo according to your system OS architecture but 32-bit Mango provide limited space of 2 gb whereas 64-bit have no concern with space limit.
Comparison with RDBMS
Relational databases impose flat, rigid schemas across many tables. By contrast, MongoDB is an agile database that allows schemas to vary across documents and to change quickly as applications evolve, while still providing the functionality developers expect from relational databases, such as secondary indexes, a full query language and strong consistency.
MongoDB is built for scalability, performance and high availability. Auto-sharding allows MongoDB to scale from single server deployments to large, complex multi-data center architectures. Leveraging native caching and RAM, MongoDB provides high performance for both reads and writes.
Support For Programming Languages
MongoDB also provides native, idiomatic drivers for all popular programming languages and frameworks to make development natural.MongoDB support all major programming languages like C#,Java,Python,Ruby etc.Only we need to download the respective Drivers or client libraries and we are ready to code with MongoDB.
To Download Drivers or client libraries follow : http://docs.mongodb.org/ecosystem/drivers/
When To Use MongoDB
There are many open source database management systems like MongoDB i think some you might have familiar with some databases already like RavenDB,Cassandra,CouchDB and so on.
MongoDB is same like Apache Cassandra both are work with same concept of Nosql. But some of the way these database are differ from one another like Cassandra provide some extra feature over the Mongo like compression techniques,RavenDB has support to ACID transactions likewise.
But the question here arises is When to use Mongo?Well i say its depends upon your client and application requirement.Its depends upon the environment on which you are working on.But according to my analysis i can suggest some scenario when you can use MongoDB.
MongoDB is mainly suitable if you have huge data to store or database size is large as its highly scalable. But if you are working with ACID Transactions report/application or your application is based on some more computation and calculation report then RDBMS is good choice as we can’t do any computation on MongoDB at back – end level like Sql Sever.
Prons of MongoDB
- Scalable : – You can scale – out MongoDB as much as you can.Space is not constraint over here.There is no limit on data size also mainly if you are working on 64-bit OS architecture.
- Costless :- MongoDB is open source free of cost database which can be installed on any operating system and work out with any programming language.
- NoSchema :- As it is non-relational database there is no concept of Table,Rows and Columns.Everything is document based object model.It has a very flexible schema.
Cons of MongoDB
- No Atomicity Support :- ACID based transactions are not possible in MongoDB as it does not support ACID properties as per as multiple document levels are concern.
- No support for Stored Procedure:- This is the main drawback i found in Mongodb we can’t write any procedure in Mongo so beacuse of which we are halted to do back – end computation.We need to write all computation logic at application level which may create extra burden for developers.
Finally, if anyone asks me that Is MongoDB replaces RDBMS or its better than That i say No. One may be better suited to a particular purpose than the other, so it’s all about making a proper decision on what is best for you for a given requirement.
In next post we will see some basic programming with MongoDB using C#.