Friday, September 5, 2014

Introduction to MongoDB

     MongoDB is new generation document oriented NoSQL database. It is open source product and developed and supported by company 10gen (Now Mongo Inc.). MongoDB is available under GNU Affero General Public License and Apache License. 10gen created MongoDB in 2007 and its first product release was MongoDB 1.4 in 2009.

       Its definition given by 10gen:- “MongoDB is a scalable, open source, high performance, document oriented database.” 
            MongoDB is most popular document oriented NoSQL databases now days. To know more about NoSQL database and its categories read my previous blogs.
MongoDB is adopted by many mejor companies including eBay, The New York Times, CERN, SAP, MetLife, MTV, Forbes, Sourceforge, Codecademy, Shutterfly, Foursquare and more.

 MongoDB provides following features:-
  • Ad hoc queries:- It supports search by field and regular expression search.
  • Indexing:- Any field in mongodb can be indexed.
  • Replication:- Supports master-slave replication. A master can perform           read-write and a slave copies data from the master and can only be used          for read or backup.
  •  Duplication of data:-Data duplication to keep the system up and running     in case of hardware failure.
  •  Scalability:- New machines can be added to run a database.
  •  Automatic Load Balancing:- Data is split into range and shared across        multiple nodes.
  • File storage:- Could be used as a file system taking advantage of load balancing and data replication.
  •  Aggregation:-MapReduce is available. Offers similar functionality as SQL GROUP by clause. 
  •  JavaScript execution:-Can use JavaScript functions.
  • Special support for location:- Understands longitude and latitude.
   
   MongoDB could be used in Big Data application as well as in traditional application. MongoDB is available for following operating systems:-



        MongoDB could be used for Big Data applications as well as traditional applications.  It is suitable for small applications but not where application need to handle complex transactions and where joins must be handled by databases.

      Relational database management systems are used with c, c++, Java, c# and most of the languages are object oriented programming languages and they hold strong information about instance of an entity in the form of object.
     while same information goes into the relational databases in relational format. MongoDB stores the data in the form of object so there is no need to convert the records into objects and objects into record. 

    MongoDB provides very strong driver support. It could be used with Java, JavaScript, Python, Ruby, c#, PHP and more.

Applications :

  •  User accounts
  • Geo data
  • Forms data
  • Application configuration
  • Content management system
  • Log data

To know about more about NoSQL and its categories read my previous blogs "NoSQL Databases" and "Types of NoSQL databases "

To get started with MongoDB read my next blog on "Downloading and installing MongoDB on Windows".