ArtsAutosBooksBusinessEducationEntertainmentFamilyFashionFoodGamesGenderHealthHolidaysHomeHubPagesPersonal FinancePetsPoliticsReligionSportsTechnologyTravel
  • »
  • Technology»
  • Computers & Software

What is MongoDB?

Updated on November 20, 2016

Introduction to MongoDB

MongoDB (from humongous) is a scalable, open source, high performance and document oriented database. It is a kind of a database which falls under the banner of NoSQL. Instead of rows and columns, it is built on an architecture of documents and collections. Documents consist of set of key-value pairs that are the fundamental units in MongoDB. MongoDB also reduces complexity because it gets you rid of migrations and relationships and reduce numbers of database requests.

MongoDB stores its data in a document data model which is similar to JSON. This make data integration easier and faster. Documents comprise of one or more fields which include binary data, arrays and sub documents. The database uses a document storage and data interchange format that is known as BSON which provide a binary presentation of JSON-like documents. A JSON database returns query results that can be easily parsed by JavaScript.

Unlike most NoSQL MongoDB offer comprehensive secondary indexes, geospatial, extensive security, text search and aggregation capabilities. MongoDB provides you the features necessary to develop the applications.

Source

MongoDB Architecture

MongoDB combines key relational database proficiency with the work that internet explorers have done to address the needs required by modern applications. It amazingly allows the users to mix and match storage engines with single deployment.

Data and records are known as documents which are saved in binary representation of JSON format. They are further organized in collections. It allows date to be showed as simple key-value and flat, table-like structures through documents and objects with sub-documents and deeply nested arrays. In a relational database, collections are similar to a table like:

Collection ~ Tables

Documents ~ Rows


RDBMS
 
MongoDB
Database
 
Database
Table
 
Collection
Tuple/Row
 
Document
Column
 
Field
Table Join
 
Embedded Documents
Primary Key
 
Primary Key (Default key _id provided by mongodb)
The arrangement shows the relationship of RDBMS with MongoDB

Schema of one document can be different than the other one even if it’s in the same collection. Developers are familiar with the JSON that's why flexible schema are supported. Array formats and nested data structures are also supported with MongoDB. It supports typed data as well such as integer, date time, double and forth.

I will cover several eBay use cases where MongoDB is used and will touch on most interesting tech problems that we faced and decisions that we made.

— Yuri Finkelstein (Software Architect Ebay)

MongoDB Data Management:

Sharding is a method of distributing data records across multiple machines. When it comes to MongoDB, it uses sharding to support deployment. MongoDB supports horizontal scaling through sharding. It's sharded cluster depends upon on the following components:

Mongos: The mongo functions as a query router which provides interface between sharded cluster and client applications.

Shard: Each shard comprises of a subset of the shared data which can be deployed as a replica set.

Config Servers: Config servers store configuration settings and metadata for cluster. As from config servers can be deployed as a replica set in MongoDB 3.2

Auto-sharding

MongoDB is designed with attributes like auto-sharding to enable seamless horizontal scalability and performance
MongoDB is designed with attributes like auto-sharding to enable seamless horizontal scalability and performance

Functionalities of MongoDB

  • File storing
  • Lightning fast
  • Load balancing
  • Indexing
  • Replication
  • Ad hoc queries
  • Aggregation
  • Capped collection
  • Rich queries
  • In-place update
  • Cost saving
  • Auto sharding
  • MongoDB is solving big data problem

So, MongoDB is an open-source document database which leads NoSQL database. It is written in C++, C and Java. Going beyond the core document model, MongoDB offers multimodal capabilities. In-database analytics, graph, cross-document relations, faceted navigation, search and more make MongoDB suitable for all use cases.

Advantages of MongoDB over RDBMS

  • Schema less
  • Structure of a single object is clear.
  • No complicated joins.
  • MongoDB supports dynamic queries Tuning.
  • MongoDB is easy to scale.
  • Backup solution.
  • Developers’ flexibility.

MongoDB version 3.0
MongoDB version 3.0 | Source

MongoDB Disadvantages

  • It is difficult to join tables in MongoDB.
  • No complex transactions support.
  • Data size in MongoDB is higher.
  • Database size dependent on memory provided by hardware and operating system.
  • Requires proper analysis.
  • Still under development.

Queries Comparison

MySQL
 
MongoDB
MySQL INSERT INTO users (std_id, age, grade) VALUES ('141237', 22, 'A')
 
db.users.insert({ std_id: '1412137', age: 22, status: 'A' })
SELECT * FROM users
 
db.users.find()
UPDATE users SET status = 'B' WHERE age > 22
 
db.users.update( { age: { $gt: 22 } }, { $set: { status: 'B’ } }, { multi: true } )
Shows Difference between queries of MySQL and MongoDB

MongoDB Atlas

MongoDB Atlas is a cloud-hosted database service. MongoDB Atlas allows users to easily provision MongoDB’s clusters across the cloud. Data is protected through robust access controls and end-to-end encryption. Servers are deployed across availability zones to ensure application is always up and running. MongoDB Atlas provides continuous backups and in time recovery. Automatically figures out when to scale up or out according to application needs.

Organizations Using MongoDB

MongoDB can be used to create applications like discussion forums, bug tracking, advertisements, single view, mobile, content Management, and catalog.

Renowned companies like Cisco, IBM, Sony, Adobe, Facebook and Google are using MongoDB.


Do you think MongoDB can replace MySQL entirely in large organizations?

See results

Comments

    0 of 8192 characters used
    Post Comment

    No comments yet.