Any field in a MongoDB document can be indexed (indices
in MongoDB are conceptually similar to those in RDBMSes). Secondary indices are
also available.

Replication

MongoDB supports master-slave replication. A master
can perform reads and writes. A slave copies data from the master and can only
be used for reads or backup (not writes). The slaves have the ability to select
a new master if the current one goes down.

Load balancing

MongoDB scales horizontally using sharding The developer chooses a shard key, which
determines how the data in a collection will be distributed. The data is split
into ranges (based on the shard key) and distributed across multiple shards. (A
shard is a master with one or more slaves.)

MongoDB can run over multiple servers, balancing the load and/or
duplicating data to keep the system up and running in case of hardware failure.
Automatic configuration is easy to deploy and new machines can be added to a
running database.

File storage

MongoDB could be used as a file system,
taking advantage of load balancing and data replication features over multiple
machines for storing files.

This function, called GridFS,[11] is
included with MongoDB drivers and available with no difficulty for development
languages (see "Language Support"
for a list of supported languages). MongoDB exposes functions for file
manipulation and content to developers. GridFS is used, for example, in
plugins for NGINX.[12] and
lighttpd[13]

In a multi-machine MongoDB system, files can be distributed and
copied multiple times between machines transparently, thus effectively creating
a load balanced and fault tolerant system.

Aggregation

MapReduce can be used for batch processing of data and
aggregation operations.
The aggregation framework enables users to obtain the kind of results for which
the SQL GROUP
BY clause is used.

Server-side JavaScript
execution

JavaScript can be used in queries, aggregation functions (such as
MapReduce), are sent directly to the database to be executed.

Capped collections

MongoDB supports fixed-size collections called capped collections.
This type of collection maintains insertion order and, once the specified size
has been reached, behaves like a circular queue.

Use cases and production deployments

MongoDB is well suited for the following cases:

·Archiving and event logging

·Document
and Content Management Systems. As a document-oriented (JSON) database, MongoDB's flexible
schemas are a good fit for this.

·E-commerce. Several sites are using MongoDB as the core of
their ecommerce infrastructure (often in combination with an RDBMS for the
final order processing and accounting).

·Gaming. High performance small read/writes are a good
fit for MongoDB; also for certain games geospatial indexes can be helpful.

·High
volume problems. Problems where a
traditional DBMS might be too expensive for the data in question. In many cases
developers would traditionally write custom code to a filesystem instead using
flat files or other methodologies.

·Operational
data store of a web site.
MongoDB is very good at real-time inserts, updates, and queries. Scalability
and replication are provided which are necessary functions for large web sites'
real-time data stores. Specific web use case examples:

·content management

·comment storage,
management, voting

·user registration,
profile, session data

·Projects
using iterative/agile development methodologies. Mongo's BSON data format makes it very easy to
store and retrieve data in a document-style / "schemaless" format.
Addition of new properties to existing objects is easy and does not generally
require blocking "ALTER TABLE" style operations.

MongoDB Overview

MongoDB is the leading NoSQL database. Designed for how we build and run applications today, MongoDB (named from "huMONGOus," meaning "extremely large") empowers organizations to be more agile and scalable. It enables new types of applications, better customer experience, faster time to market and lower costs for organizations of all sizes.

MongoDB is a general purpose, open-source database. It features:

Document data model with dynamic schemas

Full, flexible index support and rich queries

Auto-Sharding for horizontal scalability

Built-in replication for high availability

Text search

Advanced security

Aggregation Framework and MapReduce

Large media storage with GridFS

Instead of storing data in rows and columns as one would with a relational database, MongoDB stores a binary form of JSON documents (BSON). Relational databases impose flat, rigid schemas across many tables. By contrast, MongoDB is an agile NoSQL 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. Built-in replication with automated failover enables enterprise-grade reliability and operational flexibility. MongoDB also provides native, idiomatic drivers for all popular programming languages and frameworks to make development natural.

This database is used by MTV Networks, Craigslist and UIDAI Aadhar. MongoDB is the most popular NoSQL database management system.

This was overview about MongoDB. We will check the features in next post.