Mongo DB is a (NoSql) Non-relational Database system which has a dynamic schema for unstructured data. It is more scalable, flexible and faster than any Relational Database.
Relational Database had ruled since many decades as they were simple and had a great developer community. MySQL, Oracle, PostgreSQL, and Microsoft SQL Server were commonly used for every application. But as the time passes the upcoming technology needed more reliable and powerful DB.
Then comes our hero NoSQL. In 1998 Carlo Strozzi made a lightweight Strozzi NoSQL open-source relational database that did not expose the standard Structured Query Language (SQL) interface but was still relational. As time passes many NoSQL databases were formed. There are 4 general classifications of NoSQL database.
- Column: Accumulo, Cassandra, Druid, HBase, Vertica.
- Document: Apache CouchDB, ArangoDB, BaseX, Clusterpoint, Couchbase, Cosmos DB, IBM Domino, MarkLogic, MongoDB, OrientDB, Qizx, RethinkDB
- Key-value: Aerospike, Apache Ignite, ArangoDB, Berkeley DB, Couchbase, Dynamo, FairCom c-treeACE, FoundationDB, InfinityDB, MemcacheDB, MUMPS, Oracle NoSQL Database, OrientDB, Redis, Riak, SciDB, SDBM/Flat File dbm, ZooKeeper
- Graph: AllegroGraph, ArangoDB, InfiniteGraph, Apache Giraph, MarkLogic, Neo4J, OrientDB, Virtuoso
But MongoDB, Cassandra, Redis, HBase and Couchbase are commonly used NoSql database.
MongoDB is a one of the popular open-source document-oriented database developed by 10gen in 2007, later called the MongoDB Inc.MongoDB is generally used with Node and Express JS (Angular for Front-end) and collectively known as MEAN (MongoDB, Express JS, Angular, Node)
But using NoSql everywhere is inappropriate. First, know where you need to use NoSql and does it suit for your application. Use it when your application has high write load, unstable schema (i.e, when you have no idea about what info your application contains), data is location-based, data is big to handle.
Since MongoDB is highly readable it requires no database administrator required for maintaining it. It can be done by a normal developer.
Scalability - NoSQL databases are horizontally scalable, which means that they can handle more traffic simply by adding more servers to the database.
Flexible Schema - NoSql Document (Table is said to be document ) can have any no. of fields and can be nested any no. of times. Hence we need not to predefine Schema for our database.
Sharding is a method for distributing data across multiple machines. MongoDB uses sharding to support deployments with very large data sets and high throughput operations.
Mongoose is an Object Data Modeling (ODM) library for MongoDB and Node.js. It manages relationships between data, provides schema validation, and is used to translate between objects in code and the representation of those objects in MongoDB.
List of companies using MongoDB : Google Mail, LinkedIn, Ebay, Forbes, Otto and many other companies
Applications of MongoDB includes Profile Management, Real-Time Big Data, Content Management, Catalog, Mobile Applications, Internet of Things, Fraud Detection.
At last, it is not that you must use MongoDB everywhere, Know where to use it, Learn how to use & use it effectively.
Referred form many blogs & docs and written by pravindia, Smazee