0% found this document useful (0 votes)
15 views24 pages

Lecture MongoDB

DB

Uploaded by

gaitanalysis123
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views24 pages

Lecture MongoDB

DB

Uploaded by

gaitanalysis123
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 24

MongoDB

Amit Dua
BITS Pilani Assistant Professor
Hyderabad Campus
Pilani Campus Department of CSIS
MongoDB

• properties
• installation
• CRUD basics
• Hands on

Pilani Campus
BITS Pilani, Hyderabad Campus
Motivation

• Arguably Most famous or at least fastest emerging database for


big data and other applications

BITS Pilani, Hyderabad Campus


MongoDB

Seller:
• Store lots and lots of data and work with it efficiently
How it works:
• Database--- shop
• Collections-- users, orders
• Documents-- name:”Amit”, age:30
• name:”Manu”, age:45

• Schema less—Flexible
• Some kind of structure: JSON (data stored in BSON)
• Key –value pair

Pilani Campus
BITS Pilani, Hyderabad Campus
Flights.json

[
{
"departureAirport": "MUC",
"arrivalAirport": "SFO",
"aircraft": "Airbus A380",
"distance": 12000,
"intercontinental": true
},
{
"departureAirport": "LHR",
"arrivalAirport": "TXL",
"aircraft": "Airbus A320",
"distance": 950,
"intercontinental": false
}
]

BITS Pilani, Hyderabad Campus


Key properties

• Allow complex relations to be stored in data


• No Joins, fewer dependencies
• MongoDB stored data in BSON for faster retrieval
• Data stored in logical way

• Opposite of SQL
• Instead of Normalization (store data in different tables)
• Store in same collection

• Fewer relations, less tables


• Instead of fetching from Table A to B to C and get data
• Get it all at one place: Speed and flexibility

BITS Pilani, Hyderabad Campus


MongoDB Ecosystem

BITS Pilani, Hyderabad Campus


MongoDB installation

BITS Pilani, Hyderabad Campus


MongoDB Installation: Windows

• Mongodb.com
• Try free
• Server
• Download
• Install (custom)🡪 MongoDB as a service
• cmd🡪 mongo (error)
• Set environment path
• cmd 🡪 mongo (should work)

• In MAC and Linux have to run mongod (i.e., server separately)

BITS Pilani, Hyderabad Campus


Working with MongoDB

BITS Pilani, Hyderabad Campus


CRUD Basics

BITS Pilani, Hyderabad Campus


⮚ show dbs
⮚ use flights
⮚ show dbs
>db.flightData.insertOne({"departureAirport": "MUC",
"arrivalAirport": "SFO",
"aircraft": "Airbus A380",
"distance": 12000,
"intercontinental": true
})
>db.flightData.find().pretty()

BITS Pilani, Hyderabad Campus


JSON and BSON

BITS Pilani, Hyderabad Campus


Operations on MongoDB

BITS Pilani, Hyderabad Campus


CRUD basics

BITS Pilani, Hyderabad Campus


Time for practical Hands On

BITS Pilani, Hyderabad Campus


Flight Data

BITS Pilani, Hyderabad Campus


insert

>db.flightData.InsertOne({ "departureAirport": "LHR",


"arrivalAirport": "TXL",
"aircraft": "Airbus A320",
"distance": 950,
"intercontinental": false })
>db.flightData.InsertOne({"departureAirport": "LHR",
"arrivalAirport": "TXL“})
>db.flightData.InsertOne({"departureAirport": "LHR",
"arrivalAirport": "TXL“, “_id”:”lhr-txl-1”})
>db.flightData.find().pretty()
>cls
>db.flightData.deleteOne({departuteAirport:”LHR”})
>db.flightData.find().pretty()

BITS Pilani, Hyderabad Campus


delete and update

>db.flightData.deleteOne({_id:”lhr-txl-1”})
>db.flightData.find().pretty()
>db.flightData.deleteMany() //error
>db.flightData.UpdateOne({distance:12000},{marker:”delete”}) //error
>db.flightData.UpdateOne({distance:12000},{$set: {marker:”delete”}})
>db.flightData.find().pretty()

>db.flightData.updateMany({ },{$set: {marker:”to delete”}})


>db.flightData.find().pretty()

>db.flightData.deleteMany({marker:”to delete”})
>db.flightData.find().pretty()

BITS Pilani, Hyderabad Campus


insert

>db.flightData.insertMany([
{
"departureAirport": "MUC",
"arrivalAirport": "SFO",
"aircraft": "Airbus A380",
"distance": 12000,
"intercontinental": true
},
{
"departureAirport": "LHR",
"arrivalAirport": "TXL",
"aircraft": "Airbus A320",
"distance": 950,
"intercontinental": false
}
])
>db.flightData.find().pretty()

BITS Pilani, Hyderabad Campus


find and update

>db.flightData.find("aircraft": "Airbus A380“)


>db.flightData.find("intercontinental": true).pretty()
>db.flightData.find(distance:12000)
>db.flightData.find({distance: {$gt:10000}})
>db.flightData.find({distance: {$gt:900}})
>db.flightData.findOne({distance: {$gt:900}})

>db.flightData.find().pretty()
>db.flightData.updateOne(_id:……………….,{$set:{delayed:true}})
>db.flightData.update(_id:……………….,{$set:{delayed:false}})

>db.flightData.updateOne(_id:……………….,{delayed:true}}) //error
>db.flightData.updateMany(_id:……………….,{delayed:false}}) //error
>db.flightData.update(_id:……………….,{delayed:true}}) //overwrite
>db.flightData.replaceOne(_id:……………….,{delayed:true}})
//overwrite

BITS Pilani, Hyderabad Campus


Insert and find (cursor object)

>db.passengers.insertMany([
{
"name": "Max Schwarzmueller",
"age": 29
},
{
"name": "Manu Lorenz",
"age": 30
},
{
"name": "Chris Hayton",
"age": 35
},
{
"name": "Sandeep Kumar",
"age": 28
}])
>db.passengers.find().pretty()
>it

BITS Pilani, Hyderabad Campus


projection and find

>db.passengers.find({ }, {name: 1}).pretty() //id is always included: default


>db.passengers.find({ }, {name:1, _id:0}).pretty()
> db.passengers.find({ }, {name:1, _id:0, age:0}).pretty() //same as previous

All this happens at the server. No extra burden on network

>db.flightData.updateMany({ }, {$set :{status: {duration: “full”, runtime:”limited”}}})


>db.flightData.find().pretty()

>db.passengers.updateOne({name: “Armin Glutch”}, {$set: {hobbies: [“sports”,


“cooking”]}})
>db.passengers.find().pretty()
>db.passengers.find({name : “Armin Glutch”}).pretty()
>db.passengers.find({name : “Armin Glutch”}).hobbies
>db.passengers.find({hobbies:”sport”}).pretty()
>db.flightData.find({“status.description”:”on-time”}).pretty()
BITS Pilani, Hyderabad Campus
Questions??

BITS Pilani, Hyderabad Campus

You might also like