0% found this document useful (0 votes)
27 views23 pages

ADO - Lecture IV - Working With MongoDB

The document discusses various CRUD operations in MongoDB such as create, read, update, and delete. It demonstrates how to insert, find, updateOne, updateMany, and remove documents using the MongoDB shell. Examples are provided for querying documents using filters, adding and removing fields from arrays, and creating indexes to improve query performance.

Uploaded by

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

ADO - Lecture IV - Working With MongoDB

The document discusses various CRUD operations in MongoDB such as create, read, update, and delete. It demonstrates how to insert, find, updateOne, updateMany, and remove documents using the MongoDB shell. Examples are provided for querying documents using filters, adding and removing fields from arrays, and creating indexes to improve query performance.

Uploaded by

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

ADO Lecture IV

Working with MongoDB


Create Remove Update and Delete (CRUD) Operations in MongoDB
>show dbs
>use dsdastud
>db.getCollectionNames ()

>db.user.count()
>db.user.countDocuments()
>db.user.estimatedDocumentCount()
CRUD: https://docs.mongodb.com/mongodb-shell/crud/#std-label-mdb-shell-crud
R- Read
>db.user.find()
>db.user.find({"name":"ABC"})
>db.user.find({"_id":"2345"})
>db.user.find({"_id":2345})
U- Update
https://docs.mongodb.com/mongodb-shell/crud/update/#std-label-mongosh-update
>db.user.update({name: "smith"}, {$set: {country: "Canada"}})
>db.user.updateOne({name: "smith"}, {$set: {country: "Canada"}})

C-Create
https://docs.mongodb.com/mongodb-shell/crud/insert/#std-label-mongosh-insert

db.user.insert({name: "smith"})
db.user.insertOne({name: "smith"})
db.user.find();
>db.user.updateOne({name: "smith"}, {$set: {country: "Canada"}})
>db.user.find();

>db.user.updateOne({name: "smith"}, {$unset: {country: "Canada"}})


>db.users.find();
A good document representation might look something like this:

{ name: "smith",
favorites: {
cities: ["Chicago", "Cheyenne"],
movies: ["Casablanca", "For a Few Dollars More",
"The Sting"]
}
}

>db.user.updateOne( {name: "smith"},


{ $set: {favorites:
{
cities: ["Chicago", "Cheyenne"],
movies: ["Casablanca", "For a Few Dollars More", "The Sting"]
}
}
})

>db.user.find()
>db.user.updateOne( {name: "ABC"},
{"$set": {favorites:
{
movies: ["Casablanca", "Rocky"]
}
}
})

>db.users.find()
>db.user.find({"favorites.movies": "Casablanca"})
Interesting

db.user.updateOne({"favorites.movies": "Casablanca"},{"$set": {Person:


"Romantic"}})

Observe your output


Update Many Documents

db.collection.update(query,update,<upsert>,<multi>)

Detail: https://docs.mongodb.com/manual/reference/method/db.collection.update/
db.users.update({"favorites.movies": "Casablanca"},{"$set": {Person: "Romantic"}},
false,true)

>db.user.updateMany({"favorites.movies": "Casablanca"},{"$set": {Person: "Romantic"}})

Observe your output


Suppose you know, a priori, that any user who likes Casablanca also
like The Maltese Falcon and that you want to update your database to
reflect this fact. How would you represent this as a MongoDB update?
Either use either $push or $addToSet . Both operators add an item to an array, but the second
does so uniquely, preventing a duplicate addition.

>db.users.update({"favorites.movies": "Casablanca"},{$addToSet: {"favorites.movies":


"The Maltese Falcon"} },false,true )

>db.user.updateMany({"favorites.movies": "Casablanca"},{$addToSet:
{"favorites.movies": "The Maltese Falcon"}})
>db.user.updateMany({"favorites.movies": "Casablanca"},{$push: {"favorites.movies":
"The Maltese Falcon"}})
>db.user.find({"favorites.movies": "Casablanca"})
>db.user.updateMany({"favorites.movies": "Casablanca"},{$pull: {"favorites.movies":
"The Maltese Falcon"}})

Adding More than one values in Arrays

db.user.updateMany({"favorites.movies": "Casablanca"},{$addToSet:
{"favorites.movies": ["The Maltese Falcon", "Bahubali 1", "Bahubali2"]}})
But the output is Array within array, which is not desired. How to solve it?
db.user.updateMany({"favorites.movies": "Casablanca"},{$pull: {"favorites.movies":
["The Maltese Falcon", "Bahubali 1", "Bahubali2"]}})

db.user.updateMany({"favorites.movies": "Casablanca"},{$addToSet:
{"favorites.movies": {$each:["The Maltese Falcon", "Bahubali 1", "Bahubali2"]}}})
Delete operation

>db.user.remove({"favorites.movies": "Rocky"})

>db.user.remove()//remove only a certain subset of a collection’s documents

>db.user.drop()

db.user.deleteOne()
db.user.deleteMany()
db.user.findOneAndDelete()

db.users.drop()

//command is used to drop a existing database.


>db.dropDatabase()
Creating a large collection

>for(i=0; i<20000; i++) { db.numbers.insertOne({num: i});}


>db.numbers.countDocuments()

>db.numbers.find()
Range Queries

>db.numbers.find({num: 500})
>db.numbers.find( {num: {"$gt": 19995 }} )
>db.numbers.find( {num: {"$gt": 20, "$lt": 25 }} )
>db.numbers.find( {num: {"$gte": 19995 }} )
>db.numbers.find( {num: {"$gt": 20, "$lte": 25 }} )
>db.numbers.find( {num: {"$gte": 20, "$lte": 25 }} )
Indexing

>db.numbers.getIndexes()

Removing Indexes

db.<collection_name>.dropIndexes()

It will remove all indexes except _id

https://docs.mongodb.com/manual/reference/method/db.collection.dropIndexes/
https://www.mongodb.com/docs/manual/indexes/

>db.numbers.find( {num: {"$gt": 199995 }} ).explain()


>db.numbers.ensureIndex({num: 1})
>db.numbers.getIndexes()
>db.numbers.dropIndexes()
>db.numbers.find({num: {"$gt": 199995 }}).explain()

You might also like