MongoDB is an open source document-oriented data model. It was developed and supported by a company named 10gen. It is built for scalability, performance, and high availability from a single server deployment to large and complex multi-site infrastructures.
Features of MongoDB:
1. Ad-hoc Queries:
It supports field, range queries, regular expression searches. The Queries can return the specific fields of documents and also include user-defined JavaScript functions.
2. Indexing:
The fields in a MongoDB document can be indexed with primary and secondary indices.
3. Replication:
It provides high availability with replica sets. A replica set consists of two or more copies of data.
4. Load balancing:
It has automatic load balancing configuration as data placed in shards.
5. File Storage:
It can be used as a file system with load balancing and data replication features over multiple machines for storing files.
Advantages of MongoDB:
1. Aggregation:
MapReduce can be used for batch processing of data and aggregation operations.
2. Server-side JavaScript execution:
JavaScript can be used in queries, aggregation functions, and then sent directly to the database for execution.
3. Capped applications:
It supports capped applications. Capped applications are fixed-size collections. This type of collection maintains insertion order and if once the specified size has been reached, then it behaves like a circular queue.
Disadvantages of MongoDB:
1. Size:
The data size in MongoDB is high due to document name field.
2. Transaction:
Ata single document level, only atomic operations are supported and there is no support for transactions.
3. Speed:
The map reducing concept is slower and it may require Hadoop added into the mix.