Features and Benifits MongoDb
Features of MongoDb
The following are some features of mongodb:
In normal database design, we take entity data and divide into lot of relationally related components. MongoDB stores the business subjects in documents. Instead of storing Student and Subject as 2 different Relational Structure, all this information can be stored in a single Document as School. In this way, it would be more intuitive and easy to work.
Every field present in MongoDB document can be indexed. Secondary Indexes are also available with MongoDB.
MongoDB is a high available system that also provides Replica Sets. Replica Set means, there can be two or more copies of the data can be present, where each Replica can play a role of Primary or Secondary Replica at any point of time. By default, all the Read and Write operations will be performed by the Primary Set. Secondary replica maintains a copy of the data. In the event of Primary Replica's failure, an automatic selection process would be conducted to select which Secondary Replica should become Primary Replica.
Ad Hoc Queries
MongoDB supports following searches -:
- By Field
- By Range Query
- By Regular Expression
MongoDB uses Sharding to implement horizontal scaling. User has an option to choose the shard key that helps to determine how data will be distributed in a collection. Based on the shard key, the data gets split into ranges and then distributed across more than one shards. Note that shard is basically a master that includes one or more slaves. MongoDB implements Load Balancing Capability by running over multiple servers. It duplicates the data as well to keep the system running in the event of hardware failure.
MongoDB has the feature of Automatic Configuration which helps for the easy deployment. It is very easy to deploy and add new machines to a running database.
MongoDB as a database and a data collection system ultimately is a type of file system only. Now we understand 2 features (1. Load Balancing 2. Data Replication) of MongoDB that are getting driven through effective file system mechanism, wherein overall storage is distributed across multiple machines.
For the data, Aggregation purpose, MapReduce paradigm can be utilized wherein a batch processing of data happens. This framework enables user to get same kind of results that they receive while running SQL GROUP BY clause.
MapReduce is a framework where computation of large volumes of data happens in a parallel manner across cluster of computers. The basic feature of Map Reduce paradigm is to divide the task among various Machines so that to perform execution on these Machines and then in return collect the output from all these Machines.
MongoDB supports Capped Collections which is a fixed size collection where it maintains insertion order. Note that once the specified size is reached then it starts to act like a Circular Queue.
Benefits of MongoDb
The following are some of the benefits that MongoDB offers:
- Provide higher flexibility as MongoDB is a document oriented database where Documents in Collections need not be having same Fields
- Used for both Structured and Unstructured data
- There is no typical join as such
- Modification of Collection is far simpler
- Write SQL like language
- As we mentioned that compared to RDBMS, it has lesser functionality but higher performance
- Highly scalable
- Data retrieval is faster due to its architecture
- Highly Available
- Index can be applied on any of the attributes