In Last Post "Overview on MongoDB" we have discussed about the MongoDB. Now in this post we will discuss about the features and Use cases in Real World.
Main features
The
following is a brief summary of some of the main features:
Ad hoc queries
MongoDB supports search by field, range queries, regular
expression searches. Queries can return specific fields of documents and also
include user-defined JavaScript functions.
Indexing
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.
·
Mobile. Specifically, the server-side infrastructure
of mobile systems. Geospatial indexes are key here.
·
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.
·
Real-time
stats/analytics
Next Post we will see how to Install MongoDB on Linux.
Thanks!
Kuldeep