0% found this document useful (0 votes)
162 views

Mongodb: by Shashank Gupta

This document discusses MongoDB as an alternative to relational databases. It provides an overview of MongoDB, including what it is (a document database that stores flexible JSON-like documents), comparisons to SQL databases, and advantages like scalability, flexibility, and performance. It also covers MongoDB concepts like databases, collections, documents, and CRUD operations. Examples of schema design in MongoDB versus relational databases are provided.

Uploaded by

Shashank Gupta
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
162 views

Mongodb: by Shashank Gupta

This document discusses MongoDB as an alternative to relational databases. It provides an overview of MongoDB, including what it is (a document database that stores flexible JSON-like documents), comparisons to SQL databases, and advantages like scalability, flexibility, and performance. It also covers MongoDB concepts like databases, collections, documents, and CRUD operations. Examples of schema design in MongoDB versus relational databases are provided.

Uploaded by

Shashank Gupta
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 20

MongoDB

By Shashank Gupta
Topic List
 Problems with RDBMS
 What is MongoDB
 Comparison between SQL and MongoDB
 MongoDB Overview
 CRUD operation in MongoDB
 Where clause commands
 MongoDB ─ Data Modelling
 MongoDB ─ Advantages
 Where to use MongoDB?
Why MongoDB and not
MySQL?

1. Scalability

 Difficult to scale millions of


millions of data.

 Data stored in multiple tables


(relationship) it is difficult to
scale.
2. Flexibility

 Fixed data structure therefore not easy to make


modifications to data structure

 You need to spend hours and hours on designing the


database before development

 In Agile projects database requires constant restructuring


3. Performance

 Data is generally stored across multiple tables. Joins


have huge performance impact as it requires lot of CPU
and resources

 Need to install and configure complex caching


mechanism to make it faster
What is MongoDB?

 It is a NoSQL database called Document database

 It stores data in flexible JSON-like document.

 It is highly scalable and flexible database


MongoDB vs SQL
performance chart
Comparison between SQL
and MongoDB
MongoDB ─ Overview

 Database
 Database is a physical container for collections. Each database gets its
own set of files on the file system. A single MongoDB server typically has
multiple databases.
 Collection
 Collection is a group of MongoDB documents. It is the equivalent of an
RDBMS table. A collection exists within a single database. Collections do
not enforce a schema. Documents within a collection can have different
fields. Typically, all documents in a collection are of similar or related
purpose.
 Document
 A document is a set of key-value pairs. Documents have dynamic
schema. Dynamic schema means that documents in the same collection
do not need to have the same set of fields or structure, and common
fields in a collection's documents may hold different types of data..
Collections
 To create a collection
➢db.createCollection(name,options)
➢Eg:db.createCollection(‘Employees’)

 Drop a collection
➢ db.collection_name.drop()
CRUD operations

 Create
 db.collection.insert( <document> )
 db.collection.save( <document> )
 db.collection.update( <query>, <update>, { upsert: true } )
 Read
 db.collection.find( <query>, <projection> )
 db.collection.findOne( <query>, <projection> )
 Update
 db.collection.update( <query>, <update>, <options> )
 Delete
 db.collection.remove( <query>, <justOne> )
Where conditions
MongoDB commands
MongoDB ─ Data Modelling

 Data in MongoDB has a flexible schema. Documents can be in the


same collection. They do not need to have the same set of fields
or structure, and common fields in a collection’s documents may
hold different types of data.

Some considerations while designing Schema in MongoDB


 Design your schema according to user requirements.
 Combine objects into one document if you will use them together.
Otherwise separate them (but make sure there should not be need of
joins).
 Duplicate the data (but limited) because disk space is cheap as
compare to compute time.
 Do joins while write, not on read.
Example

 Suppose a client needs a database design for his


blog/website and see the differences between RDBMS
and MongoDB schema design. Website has the following
requirements.

 Every post has the unique title, description and url.


 Every post can have one or more tags.
 Every post has the name of its publisher and total number of
likes.
 Every post has comments given by users along with their
name, message, data-time and likes.
 On each post, there can be zero or more comments.
In RDBMS schema, design for above
requirements will have minimum three
tables.
While in MongoDB schema, design will have one
collection post and the following structure
MongoDB ─ Advantages

 Schema less: MongoDB is a document database in which one


collection holds different documents. Number of fields, content
and size of the document can differ from one document to
another.
 Ability to handle large unstructured data.
 Clear structure of a single object
 Fast Access-out: MongoDB is easy to scale.
 Deep query ability- MongoDB supports dynamic queries on
documents using a document-based query language that's nearly
as powerful as SQL.
Where to use MongoDB?

 Big Data
 Aadhar
 Shutterfly
 eBay
 Content Management and Delivery
 User Data Management
 Mobile and Social Networking sites
Thank you

You might also like