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

MongoDB Using Python

Uploaded by

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

MongoDB Using Python

Uploaded by

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

nabwrvgte

November 30, 2024

1 MongoDB Using Python


[1]: pip install pymongo

Requirement already satisfied: pymongo in c:\users\shubham\anaconda3\lib\site-


packages (4.10.1)
Requirement already satisfied: dnspython<3.0.0,>=1.16.0 in
c:\users\shubham\anaconda3\lib\site-packages (from pymongo) (2.7.0)
Note: you may need to restart the kernel to use updated packages.

[3]: try:
import os
import sys
import io
import pymongo
import json
from pymongo import MongoClient
from bson.objectid import ObjectId

print("All Modules loaded ")


except Exception as e:
print("Error : {} ".format(e))

All Modules loaded


All Modules loaded Before you start working understanding basics is important. Now that you
understand what a database Name is and what a collection is we will use pymongo Library for this.
[5]: #CONNECTION_URL = "mongodb://root:rootpassword@localhost:27017"
import pymongo
client = MongoClient(host="mongodb://localhost:27017")

[7]: client

[7]: MongoClient(host=['localhost:27017'], document_class=dict, tz_aware=False,


connect=True)

1
[9]: #Getting all DB Names
client.list_database_names()

[9]: ['admin', 'config', 'local']

[11]: DBNAME = 'Mydatabase'

client[DBNAME].list_collection_names()

[11]: []

**Insert operations
When you want to insert Items in MongoDB you always have to say which Database Name and
which collection Name
inserting one Documents
Lets Create a new Database with Name ‘empdb’ and have a table name ‘emp’
[14]: client['mydb']['emp'].insert_one({

"ename":"Manoj Chavan",
"age":36,
"language":["Python", "c#" , "c++","MongoDB","Networking","Java"]

})

[14]: InsertOneResult(ObjectId('674add927caf0f7fc48613ab'), acknowledged=True)

[16]: client['mydb']['emp'].find()

#Remeber it will always give you a generator Object


# to get the data you need a iterator {} mean find everything

[16]: <pymongo.synchronous.cursor.Cursor at 0x1d9e407e060>

[18]: for x in client['mydb']['emp'].find():


print(x)
# break

{'_id': ObjectId('674add927caf0f7fc48613ab'), 'ename': 'Manoj Chavan', 'age':


36, 'language': ['Python', 'c#', 'c++', 'MongoDB', 'Networking', 'Java']}

[ ]:

Insert Many Documents

2
[28]: data = [
{
"ename":"swati",
"job":"Manager",
"sal":50000,
"dept":10
},
{
"ename":"Pratiksha",
"job":"Analyst",
"sal":25000,
"dept":10
},
{
"ename":"Kirti",
"job":"Manager",
"sal":30000,
"dept":20
}
]
client['mydb']['emp'].insert_many(data)

[28]: InsertManyResult([ObjectId('674addaa7caf0f7fc48613af'),
ObjectId('674addaa7caf0f7fc48613b0'), ObjectId('674addaa7caf0f7fc48613b1')],
acknowledged=True)

[26]: for x in client['mydb']['emp'].find():


print(x)

{'_id': ObjectId('674add927caf0f7fc48613ab'), 'ename': 'Manoj Chavan', 'age':


36, 'language': ['Python', 'c#', 'c++', 'MongoDB', 'Networking', 'Java']}
{'_id': ObjectId('674adda17caf0f7fc48613ac'), 'ename': 'swati', 'job':
'Manager', 'sal': 50000, 'dept': 10}
{'_id': ObjectId('674adda17caf0f7fc48613ad'), 'ename': 'Pratiksha', 'job':
'Analyst', 'sal': 25000, 'dept': 10}
{'_id': ObjectId('674adda17caf0f7fc48613ae'), 'ename': 'Kirti', 'job':
'Manager', 'sal': 30000, 'dept': 20}

[30]: data=[{"empno":101, "ename":"Sanjay", "sal" : 50000, "job": "Manager" , "dept":


↪10 } ,

{"empno":102, "ename":"Prakash", "sal" : 20000, "job": "Analyst" , "dept":


↪20 },

{"empno":103, "ename":"Priti", "sal" : 30000, "job": "Manager" , "dept":10␣


↪} ]

client['mydb']['emp'].insert_many(data)

3
[30]: InsertManyResult([ObjectId('674addac7caf0f7fc48613b2'),
ObjectId('674addac7caf0f7fc48613b3'), ObjectId('674addac7caf0f7fc48613b4')],
acknowledged=True)

[34]: for x in client['mydb']['emp'].find({}):


print(x)

{'_id': ObjectId('674add927caf0f7fc48613ab'), 'ename': 'Manoj Chavan', 'age':


36, 'language': ['Python', 'c#', 'c++', 'MongoDB', 'Networking', 'Java']}
{'_id': ObjectId('674adda17caf0f7fc48613ac'), 'ename': 'swati', 'job':
'Manager', 'sal': 50000, 'dept': 10}
{'_id': ObjectId('674adda17caf0f7fc48613ad'), 'ename': 'Pratiksha', 'job':
'Analyst', 'sal': 25000, 'dept': 10}
{'_id': ObjectId('674adda17caf0f7fc48613ae'), 'ename': 'Kirti', 'job':
'Manager', 'sal': 30000, 'dept': 20}
{'_id': ObjectId('674addaa7caf0f7fc48613af'), 'ename': 'swati', 'job':
'Manager', 'sal': 50000, 'dept': 10}
{'_id': ObjectId('674addaa7caf0f7fc48613b0'), 'ename': 'Pratiksha', 'job':
'Analyst', 'sal': 25000, 'dept': 10}
{'_id': ObjectId('674addaa7caf0f7fc48613b1'), 'ename': 'Kirti', 'job':
'Manager', 'sal': 30000, 'dept': 20}
{'_id': ObjectId('674addac7caf0f7fc48613b2'), 'empno': 101, 'ename': 'Sanjay',
'sal': 50000, 'job': 'Manager', 'dept': 10}
{'_id': ObjectId('674addac7caf0f7fc48613b3'), 'empno': 102, 'ename': 'Prakash',
'sal': 20000, 'job': 'Analyst', 'dept': 20}
{'_id': ObjectId('674addac7caf0f7fc48613b4'), 'empno': 103, 'ename': 'Priti',
'sal': 30000, 'job': 'Manager', 'dept': 10}
Update records in monogodb
[36]: myquery = { "job": "Manager" }
newvalues = { "$set": { "sal": 50000 } }
client['mydb']['emp'].update_one(myquery,newvalues)
#mycol.update_one(myquery, newvalues)

[36]: UpdateResult({'n': 1, 'nModified': 0, 'ok': 1.0, 'updatedExisting': True},


acknowledged=True)

[38]: mydb = client["mydb"]


mycol = mydb["emp"]
myquery = { "job": "Manager" }
newvalues = { "$set": { "ename": "IICMR" } }
#client['mydb']['emp'].update_one(myquery,newvalues)
mycol.update_one(myquery, newvalues)
for i in mycol.find():
print(i)

{'_id': ObjectId('674add927caf0f7fc48613ab'), 'ename': 'Manoj Chavan', 'age':

4
36, 'language': ['Python', 'c#', 'c++', 'MongoDB', 'Networking', 'Java']}
{'_id': ObjectId('674adda17caf0f7fc48613ac'), 'ename': 'IICMR', 'job':
'Manager', 'sal': 50000, 'dept': 10}
{'_id': ObjectId('674adda17caf0f7fc48613ad'), 'ename': 'Pratiksha', 'job':
'Analyst', 'sal': 25000, 'dept': 10}
{'_id': ObjectId('674adda17caf0f7fc48613ae'), 'ename': 'Kirti', 'job':
'Manager', 'sal': 30000, 'dept': 20}
{'_id': ObjectId('674addaa7caf0f7fc48613af'), 'ename': 'swati', 'job':
'Manager', 'sal': 50000, 'dept': 10}
{'_id': ObjectId('674addaa7caf0f7fc48613b0'), 'ename': 'Pratiksha', 'job':
'Analyst', 'sal': 25000, 'dept': 10}
{'_id': ObjectId('674addaa7caf0f7fc48613b1'), 'ename': 'Kirti', 'job':
'Manager', 'sal': 30000, 'dept': 20}
{'_id': ObjectId('674addac7caf0f7fc48613b2'), 'empno': 101, 'ename': 'Sanjay',
'sal': 50000, 'job': 'Manager', 'dept': 10}
{'_id': ObjectId('674addac7caf0f7fc48613b3'), 'empno': 102, 'ename': 'Prakash',
'sal': 20000, 'job': 'Analyst', 'dept': 20}
{'_id': ObjectId('674addac7caf0f7fc48613b4'), 'empno': 103, 'ename': 'Priti',
'sal': 30000, 'job': 'Manager', 'dept': 10}
Update if Record Exists
[40]: d1 = {
"ename":"Sachin",
"age":222,
"language":["python3","C Programming"]

}
d1

[40]: {'ename': 'Sachin', 'age': 222, 'language': ['python3', 'C Programming']}

[42]: client['mydb']['emp'].update_many( {"_id":"101"}, {"$set": d1}


)

[42]: UpdateResult({'n': 0, 'nModified': 0, 'ok': 1.0, 'updatedExisting': False},


acknowledged=True)

[44]: # to change only one Attribute


client['mydb']['emp'].update_many(
{"_id":"101"},
{"$set": {"ename":"Mohit Sharma "}}
)

[44]: UpdateResult({'n': 0, 'nModified': 0, 'ok': 1.0, 'updatedExisting': False},


acknowledged=True)

5
[46]: mydb = client["mydb"]
mycol = mydb["emp"]

myquery = { "ename": { "$regex": "^P" } }


newvalues = { "$set": { "ename": "IICMR" } }

#client['mydb']['emp'].update(myquery,newvalues)
x = mycol.update_many(myquery, newvalues)

print(x.modified_count, "documents updated.")

for x in mycol.find():
print(x)

4 documents updated.
{'_id': ObjectId('674add927caf0f7fc48613ab'), 'ename': 'Manoj Chavan', 'age':
36, 'language': ['Python', 'c#', 'c++', 'MongoDB', 'Networking', 'Java']}
{'_id': ObjectId('674adda17caf0f7fc48613ac'), 'ename': 'IICMR', 'job':
'Manager', 'sal': 50000, 'dept': 10}
{'_id': ObjectId('674adda17caf0f7fc48613ad'), 'ename': 'IICMR', 'job':
'Analyst', 'sal': 25000, 'dept': 10}
{'_id': ObjectId('674adda17caf0f7fc48613ae'), 'ename': 'Kirti', 'job':
'Manager', 'sal': 30000, 'dept': 20}
{'_id': ObjectId('674addaa7caf0f7fc48613af'), 'ename': 'swati', 'job':
'Manager', 'sal': 50000, 'dept': 10}
{'_id': ObjectId('674addaa7caf0f7fc48613b0'), 'ename': 'IICMR', 'job':
'Analyst', 'sal': 25000, 'dept': 10}
{'_id': ObjectId('674addaa7caf0f7fc48613b1'), 'ename': 'Kirti', 'job':
'Manager', 'sal': 30000, 'dept': 20}
{'_id': ObjectId('674addac7caf0f7fc48613b2'), 'empno': 101, 'ename': 'Sanjay',
'sal': 50000, 'job': 'Manager', 'dept': 10}
{'_id': ObjectId('674addac7caf0f7fc48613b3'), 'empno': 102, 'ename': 'IICMR',
'sal': 20000, 'job': 'Analyst', 'dept': 20}
{'_id': ObjectId('674addac7caf0f7fc48613b4'), 'empno': 103, 'ename': 'IICMR',
'sal': 30000, 'job': 'Manager', 'dept': 10}
Search
[60]: #match all
client['mydb']['emp'].find({})
#Remeber it will always give you a generator Object to get the data you need a␣
↪iterator {} mean find everything

[60]: <pymongo.synchronous.cursor.Cursor at 0x1d9e3c634a0>

[62]: for x in client['mydb']['emp'].find({}):


print(x)

6
{'_id': ObjectId('674add927caf0f7fc48613ab'), 'ename': 'Manoj Chavan', 'age':
36, 'language': ['Python', 'c#', 'c++', 'MongoDB', 'Networking', 'Java']}
{'_id': ObjectId('674adda17caf0f7fc48613ac'), 'ename': 'IICMR', 'job':
'Manager', 'sal': 50000, 'dept': 10}
{'_id': ObjectId('674adda17caf0f7fc48613ad'), 'ename': 'IICMR', 'job':
'Analyst', 'sal': 25000, 'dept': 10}
{'_id': ObjectId('674adda17caf0f7fc48613ae'), 'ename': 'Kirti', 'job':
'Manager', 'sal': 30000, 'dept': 20}
{'_id': ObjectId('674addaa7caf0f7fc48613af'), 'ename': 'swati', 'job':
'Manager', 'sal': 50000, 'dept': 10}
{'_id': ObjectId('674addaa7caf0f7fc48613b0'), 'ename': 'IICMR', 'job':
'Analyst', 'sal': 25000, 'dept': 10}
{'_id': ObjectId('674addaa7caf0f7fc48613b1'), 'ename': 'Kirti', 'job':
'Manager', 'sal': 30000, 'dept': 20}
{'_id': ObjectId('674addac7caf0f7fc48613b2'), 'empno': 101, 'ename': 'Sanjay',
'sal': 50000, 'job': 'Manager', 'dept': 10}
{'_id': ObjectId('674addac7caf0f7fc48613b3'), 'empno': 102, 'ename': 'IICMR',
'sal': 20000, 'job': 'Analyst', 'dept': 20}
{'_id': ObjectId('674addac7caf0f7fc48613b4'), 'empno': 103, 'ename': 'IICMR',
'sal': 30000, 'job': 'Manager', 'dept': 10}

[64]: #less than operator

for x in client['mydb']['emp'].find({ "sal": { "$gt": 30000}}):


print(x)

{'_id': ObjectId('674adda17caf0f7fc48613ac'), 'ename': 'IICMR', 'job':


'Manager', 'sal': 50000, 'dept': 10}
{'_id': ObjectId('674addaa7caf0f7fc48613af'), 'ename': 'swati', 'job':
'Manager', 'sal': 50000, 'dept': 10}
{'_id': ObjectId('674addac7caf0f7fc48613b2'), 'empno': 101, 'ename': 'Sanjay',
'sal': 50000, 'job': 'Manager', 'dept': 10}

[66]: #AND
for x in client['mydb']['emp'].find({ "$and":[{"job":"Manager"},{"dept":10}]}):
print(x)

{'_id': ObjectId('674adda17caf0f7fc48613ac'), 'ename': 'IICMR', 'job':


'Manager', 'sal': 50000, 'dept': 10}
{'_id': ObjectId('674addaa7caf0f7fc48613af'), 'ename': 'swati', 'job':
'Manager', 'sal': 50000, 'dept': 10}
{'_id': ObjectId('674addac7caf0f7fc48613b2'), 'empno': 101, 'ename': 'Sanjay',
'sal': 50000, 'job': 'Manager', 'dept': 10}
{'_id': ObjectId('674addac7caf0f7fc48613b4'), 'empno': 103, 'ename': 'IICMR',
'sal': 30000, 'job': 'Manager', 'dept': 10}

7
[68]: #OR

for x in client['empdb']['emp'].find( { "$or":[{"job":"Manager"},{"dept":10}] ␣


↪} ):

print(x)

[85]: #sort
data = client['empdb']['emp'].find( { "$or":[{"job":"Manager"},{"dept":10}] },
{"ename":1,"dept":1} ).sort("ename")
# find({query},{projection}).sort(key:order)
for x in data:
print(x)

{'_id': ObjectId('6131ae6d97638a385d5f6142'), 'ename': 'Kirti'}


{'_id': ObjectId('6131ae6d97638a385d5f6141'), 'ename': 'Pratiksha'}
{'_id': ObjectId('6131af0997638a385d5f6145'), 'ename': 'Priti'}
{'_id': ObjectId('6131af0997638a385d5f6143'), 'ename': 'Sanjay'}
{'_id': ObjectId('6131ae6d97638a385d5f6140'), 'ename': 'swati'}

[72]: data = client['empdb']['emp'].find( { },{"ename":1} ).sort("ename")

for x in data:
print(x)

[74]: #delete

client['empdb']['emp'].delete_one({"ename":"Priti"})

[74]: DeleteResult({'n': 0, 'ok': 1.0}, acknowledged=True)

[92]: data = client['empdb']['emp'].find( { },{"ename":1} ).sort("ename")

for x in data:
print(x)

[78]: #Delete Many

client['empdb']['emp'].delete_many({})

[78]: DeleteResult({'n': 0, 'ok': 1.0}, acknowledged=True)

You might also like