MongoDB is an open-source, modern, general-purpose, document-based distributed database management system developed, distributed, and supported by MongoDB Inc. It is a powerful and flexible, agile NoSQL (non-relational) document database that stores data in documents similar to JSON (JavaScript Object Notation) objects. MongoDB runs on Linux, Windows, and macOS operating systems.
It comes with a comprehensive suite of tools for easy data management and it is built for modern application development and for the cloud and intended for use by developers, data analysts, and data scientists.
History of MongoDB
MongoDB version history dates back to 2007. It was developed in 2007 by a New York-based organization 10gen which is now called MongoDB Inc. MongoDB was developed as a PAAS (Platform as a service) initially.
Kevin P. Ryan, Dwight Merriman (CTO and founder), and Eliot Horowitz (founder of ShopWiki, founder), the founders of DoubleClick, are the developers of MongoDB. The three developers, in Mongo history, experienced serious relational database scalability problems while developing internet applications at the company.
Due to the need or idea of the database processing data in large amounts, according to Dwight, the database was named MongoDB, a word obtained from the term “humongous.”
Later on in the year 2009, MongoDB was introduced in the market as an open-source database server that was maintained and supported by MongoDB Inc.
How Does MongoDB Work?
MongoDB is structured on a client-server model where a server daemon accepts connections from clients and processes database actions from them. The server must be running for clients to connect and interact with databases.
Data storage under MongoDB is different from traditional databases. A record in MongoDB is a document (a data structure composed of field and value pairs, similar to JSON objects) and documents are stored in collections (analogous to tables in RDBMS).
Key Features of MongoDB
MongoDB supports read-only views and on-demand materialized views. It also supports arrays and nested objects as values allow for flexible and dynamic schemas. Besides, it supports multiple storage engines and provides a pluggable storage engine API that you can use to develop your storage engines.
MongoDB is designed for high performance and data persistence. It supports embedded data models that alleviate I/O activity on the database system. Besides, its indexes allow for faster queries and importantly, they can include keys from embedded documents and arrays.
It comes with a rich and powerful query language (to support read and write operations), supports data aggregation, and other modern use-cases such as text search, graph search, and Geospatial queries.
It offers the power of relational databases by supporting full ACID transactions, joins in queries, and two types of relationships instead of one: reference and embedded.
MongoDB also supports high availability, using a replication facility called replica set (a group of MongoDB servers that maintain the data set thus providing automatic failover, data redundancy, and availability). There is also support for horizontal scalability where sharding distributes data across a cluster of MongoDB servers.
To secure a database deployment, MongoDB provides various security features, such as authentication and authorization, access control, TLS/SSL encryption, auditing, and more.
Also, it provides a security checklist which is a list of recommended security measures that you need to implement to protect a MongoDB deployment. Also, ensure that you have hardened security at the network and server layer.
Why MongoDB mostly used Businesses?
MongoDB prefers a high insert rate. So if you expect a high write load, MongoDB is your best bet.
Documents (objects) in MongoDB map nicely to programming language data types.
Adding new fields in MongoDB does not affect the old rows (documents in this case).
Rapid replicaSet enables meeting the regulations to set up multi-data centre solutions with ease.
Embedding makes reads and writes a lot faster.
MongoDB has built-in spatial functions which is an ideal case for businesses whose data is location-based.
EA Sports Case Study
Electronic Arts’ EA Sports FIFA, the world's best-selling sports video game franchise. EA Sports FIFA offers otherwise average athletes the chance to take on and beat the world’s best, weaving intricate passing plays and mastering Messi-esque dribbling with the flick of a controller. All without leaving the comfort of their couch.
Not everyone chooses to play FIFA on their Xbox or Playstation, however. Throughout Asia one of the most popular ways to bend it like Beckham is with EA’s FIFA Online 3. The massively multiplayer online soccer game is the most popular sports game in Korea, allowing players to choose to play and customize a team from any of over 30 leagues and 15,000 real-world players.
Because EA FIFA Online 3, developed by Spearhead, one of EA’s leading development studios, needs to scale to millions of players, Spearhead built the game to run on MongoDB, the industry's most scalable database. EA already runs 250 MongoDB servers, spread across 80 shards. As EA FIFA Online 3 continues to grow in popularity, EA expects MongoDB's auto sharding and other features to make it simple to scale.
Not content to win accolades on the field, EA FIFA Online 3 has also garnered honours from the industry, most recently winning a MongoDB Innovation Award, due to its creative use of MongoDB.
Even better, EA's Spearhead, recipient of the $2,500 award for its work, donated it to the Park Ji-sung JS Foundation. Park, who played for years for Manchester United and tormented Arsenal defences, “congratulate[d] Spearhead on the great performance of FIFA Online 3,” performance enabled by its underlying MongoDB data infrastructure.
In addition to EA, Kixeye and a variety of other gaming companies use MongoDB to improve the gaming experience.