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

MongoDB Using Python

Uploaded by

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

MongoDB Using Python

Uploaded by

johibel889
Copyright
© © All Rights Reserved
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