wkdpklm5a
November 30, 2024
1 MongoDB Using Python
[1]: pip install pymongo
Requirement already satisfied: pymongo in c:\users\admin\anaconda3\lib\site-
packages (4.3.3)
Requirement already satisfied: dnspython<3.0.0,>=1.16.0 in
c:\users\admin\anaconda3\lib\site-packages (from pymongo) (2.3.0)
Note: you may need to restart the kernel to use updated packages.
[2]: 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.
[10]: #CONNECTION_URL = "mongodb://root:rootpassword@localhost:27017"
import pymongo
client = MongoClient(host="mongodb://localhost:27017")
[12]: client
[12]: MongoClient(host=['localhost:27017'], document_class=dict, tz_aware=False,
connect=True)
1
[13]: #Getting all DB Names
client.list_database_names()
[13]: ['Mydatabase', 'Student', 'admin', 'config', 'empdb', 'local', 'mydb', 'test']
[14]: DBNAME = 'Mydatabase'
client[DBNAME].list_collection_names()
[14]: ['Mydatabase']
**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’
[15]: client['mydb']['emp'].insert_one({
"ename":"Manoj Chavan",
"age":36,
"language":["Python", "c#" , "c++","MongoDB","Networking","Java"]
})
[15]: <pymongo.results.InsertOneResult at 0x1b75d8b2b60>
[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.cursor.Cursor at 0x1b75d8b2dd0>
[13]: for x in client['mydb']['emp'].find():
print(x)
# break
{'_id': ObjectId('6493d35ffacfb7b685d8748c'), 'ename': 'Manoj Chavan', 'age':
35, 'language': ['Python', 'c#', 'c++', 'MongoDB', 'Networking']}
{'_id': ObjectId('6493d41dfacfb7b685d8748d'), 'ename': 'swati', 'job':
'Manager', 'sal': 60000, 'dept': 10}
{'_id': ObjectId('6493d41dfacfb7b685d8748e'), 'ename': 'ATSS', 'job': 'Analyst',
'sal': 25000, 'dept': 10}
{'_id': ObjectId('6493d41dfacfb7b685d8748f'), 'ename': 'Kirti', 'job':
2
'Manager', 'sal': 30000, 'dept': 20}
{'_id': ObjectId('6495214d3a55947db7aaf6df'), 'ename': 'Manoj Chavan', 'age':
35, 'language': ['Python', 'c#', 'c++', 'MongoDB', 'Networking']}
{'_id': ObjectId('649521913a55947db7aaf6e0'), 'ename': 'swati', 'job':
'Manager', 'sal': 50000, 'dept': 10}
{'_id': ObjectId('649521913a55947db7aaf6e1'), 'ename': 'ATSS', 'job': 'Analyst',
'sal': 25000, 'dept': 10}
{'_id': ObjectId('649521913a55947db7aaf6e2'), 'ename': 'Kirti', 'job':
'Manager', 'sal': 30000, 'dept': 20}
{'_id': ObjectId('6495219f3a55947db7aaf6e3'), 'empno': 101, 'ename': 'Sanjay',
'sal': 50000, 'job': 'Manager', 'dept': 10}
{'_id': ObjectId('6495219f3a55947db7aaf6e4'), 'empno': 102, 'ename': 'ATSS',
'sal': 20000, 'job': 'Analyst', 'dept': 20}
{'_id': ObjectId('6495219f3a55947db7aaf6e5'), 'empno': 103, 'ename': 'ATSS',
'sal': 30000, 'job': 'Manager', 'dept': 10}
{'_id': ObjectId('64994fb4796fc677ed7698bd'), 'ename': 'Manoj Chavan', 'age':
36, 'language': ['Python', 'c#', 'c++', 'MongoDB', 'Networking', 'Java']}
[ ]:
Insert Many Documents
[14]: 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)
[14]: <pymongo.results.InsertManyResult at 0x186340fb130>
[10]: for x in client['mydb']['emp'].find():
print(x)
3
{'_id': ObjectId('6493d35ffacfb7b685d8748c'), 'ename': 'Manoj Chavan', 'age':
35, 'language': ['Python', 'c#', 'c++', 'MongoDB', 'Networking']}
{'_id': ObjectId('6493d41dfacfb7b685d8748d'), 'ename': 'swati', 'job':
'Manager', 'sal': 50000, 'dept': 10}
{'_id': ObjectId('6493d41dfacfb7b685d8748e'), 'ename': 'Pratiksha', 'job':
'Analyst', 'sal': 25000, 'dept': 10}
{'_id': ObjectId('6493d41dfacfb7b685d8748f'), 'ename': 'Kirti', 'job':
'Manager', 'sal': 30000, 'dept': 20}
{'_id': ObjectId('6495214d3a55947db7aaf6df'), 'ename': 'Manoj Chavan', 'age':
35, 'language': ['Python', 'c#', 'c++', 'MongoDB', 'Networking']}
{'_id': ObjectId('649521913a55947db7aaf6e0'), 'ename': 'swati', 'job':
'Manager', 'sal': 50000, 'dept': 10}
{'_id': ObjectId('649521913a55947db7aaf6e1'), 'ename': 'Pratiksha', 'job':
'Analyst', 'sal': 25000, 'dept': 10}
{'_id': ObjectId('649521913a55947db7aaf6e2'), 'ename': 'Kirti', 'job':
'Manager', 'sal': 30000, 'dept': 20}
[11]: 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)
[11]: <pymongo.results.InsertManyResult at 0x23f0452fbe0>
[13]: for x in client['mydb']['emp'].find({}):
print(x)
{'_id': ObjectId('6493d35ffacfb7b685d8748c'), 'ename': 'Manoj Chavan', 'age':
35, 'language': ['Python', 'c#', 'c++', 'MongoDB', 'Networking']}
{'_id': ObjectId('6493d41dfacfb7b685d8748d'), 'ename': 'swati', 'job':
'Manager', 'sal': 50000, 'dept': 10}
{'_id': ObjectId('6493d41dfacfb7b685d8748e'), 'ename': 'Pratiksha', 'job':
'Analyst', 'sal': 25000, 'dept': 10}
{'_id': ObjectId('6493d41dfacfb7b685d8748f'), 'ename': 'Kirti', 'job':
'Manager', 'sal': 30000, 'dept': 20}
{'_id': ObjectId('6495214d3a55947db7aaf6df'), 'ename': 'Manoj Chavan', 'age':
35, 'language': ['Python', 'c#', 'c++', 'MongoDB', 'Networking']}
{'_id': ObjectId('649521913a55947db7aaf6e0'), 'ename': 'swati', 'job':
'Manager', 'sal': 50000, 'dept': 10}
{'_id': ObjectId('649521913a55947db7aaf6e1'), 'ename': 'Pratiksha', 'job':
'Analyst', 'sal': 25000, 'dept': 10}
{'_id': ObjectId('649521913a55947db7aaf6e2'), 'ename': 'Kirti', 'job':
'Manager', 'sal': 30000, 'dept': 20}
{'_id': ObjectId('6495219f3a55947db7aaf6e3'), 'empno': 101, 'ename': 'Sanjay',
4
'sal': 50000, 'job': 'Manager', 'dept': 10}
{'_id': ObjectId('6495219f3a55947db7aaf6e4'), 'empno': 102, 'ename': 'Prakash',
'sal': 20000, 'job': 'Analyst', 'dept': 20}
{'_id': ObjectId('6495219f3a55947db7aaf6e5'), 'empno': 103, 'ename': 'Priti',
'sal': 30000, 'job': 'Manager', 'dept': 10}
Update records in monogodb
[16]: myquery = { "job": "Manager" }
newvalues = { "$set": { "sal": 50000 } }
client['mydb']['emp'].update_one(myquery,newvalues)
#mycol.update_one(myquery, newvalues)
[16]: <pymongo.results.UpdateResult at 0x23f011c7280>
[20]: 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('6493d35ffacfb7b685d8748c'), 'ename': 'Manoj Chavan', 'age':
35, 'language': ['Python', 'c#', 'c++', 'MongoDB', 'Networking']}
{'_id': ObjectId('6493d41dfacfb7b685d8748d'), 'ename': 'swati', 'job':
'Manager', 'sal': 60000, 'dept': 10}
{'_id': ObjectId('6493d41dfacfb7b685d8748e'), 'ename': 'Pratiksha', 'job':
'Analyst', 'sal': 25000, 'dept': 10}
{'_id': ObjectId('6493d41dfacfb7b685d8748f'), 'ename': 'Kirti', 'job':
'Manager', 'sal': 30000, 'dept': 20}
{'_id': ObjectId('6495214d3a55947db7aaf6df'), 'ename': 'Manoj Chavan', 'age':
35, 'language': ['Python', 'c#', 'c++', 'MongoDB', 'Networking']}
{'_id': ObjectId('649521913a55947db7aaf6e0'), 'ename': 'swati', 'job':
'Manager', 'sal': 50000, 'dept': 10}
{'_id': ObjectId('649521913a55947db7aaf6e1'), 'ename': 'Pratiksha', 'job':
'Analyst', 'sal': 25000, 'dept': 10}
{'_id': ObjectId('649521913a55947db7aaf6e2'), 'ename': 'Kirti', 'job':
'Manager', 'sal': 30000, 'dept': 20}
{'_id': ObjectId('6495219f3a55947db7aaf6e3'), 'empno': 101, 'ename': 'Sanjay',
'sal': 50000, 'job': 'Manager', 'dept': 10}
{'_id': ObjectId('6495219f3a55947db7aaf6e4'), 'empno': 102, 'ename': 'Prakash',
'sal': 20000, 'job': 'Analyst', 'dept': 20}
{'_id': ObjectId('6495219f3a55947db7aaf6e5'), 'empno': 103, 'ename': 'Priti',
'sal': 30000, 'job': 'Manager', 'dept': 10}
Update if Record Exists
5
[15]: d1 = {
"ename":"Sachin",
"age":222,
"language":["python3","C Programming"]
}
d1
[15]: {'ename': 'Sachin', 'age': 222, 'language': ['python3', 'C Programming']}
[33]: client['mydb']['emp'].update_many( {"_id":"101"}, {"$set": d1}
)
[33]: <pymongo.results.UpdateResult at 0x2a841913b50>
[34]: # to change only one Attribute
client['mydb']['emp'].update_many(
{"_id":"101"},
{"$set": {"ename":"Mohit Sharma "}}
)
[34]: <pymongo.results.UpdateResult at 0x2a8418b5b10>
[24]: 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)
0 documents updated.
{'_id': ObjectId('6493d35ffacfb7b685d8748c'), 'ename': 'Manoj Chavan', 'age':
35, 'language': ['Python', 'c#', 'c++', 'MongoDB', 'Networking']}
{'_id': ObjectId('6493d41dfacfb7b685d8748d'), 'ename': 'swati', 'job':
'Manager', 'sal': 60000, 'dept': 10}
{'_id': ObjectId('6493d41dfacfb7b685d8748e'), 'ename': 'IICMR', 'job':
'Analyst', 'sal': 25000, 'dept': 10}
{'_id': ObjectId('6493d41dfacfb7b685d8748f'), 'ename': 'Kirti', 'job':
'Manager', 'sal': 30000, 'dept': 20}
{'_id': ObjectId('6495214d3a55947db7aaf6df'), 'ename': 'Manoj Chavan', 'age':
6
35, 'language': ['Python', 'c#', 'c++', 'MongoDB', 'Networking']}
{'_id': ObjectId('649521913a55947db7aaf6e0'), 'ename': 'swati', 'job':
'Manager', 'sal': 50000, 'dept': 10}
{'_id': ObjectId('649521913a55947db7aaf6e1'), 'ename': 'IICMR', 'job':
'Analyst', 'sal': 25000, 'dept': 10}
{'_id': ObjectId('649521913a55947db7aaf6e2'), 'ename': 'Kirti', 'job':
'Manager', 'sal': 30000, 'dept': 20}
{'_id': ObjectId('6495219f3a55947db7aaf6e3'), 'empno': 101, 'ename': 'Sanjay',
'sal': 50000, 'job': 'Manager', 'dept': 10}
{'_id': ObjectId('6495219f3a55947db7aaf6e4'), 'empno': 102, 'ename': 'IICMR',
'sal': 20000, 'job': 'Analyst', 'dept': 20}
{'_id': ObjectId('6495219f3a55947db7aaf6e5'), 'empno': 103, 'ename': 'IICMR',
'sal': 30000, 'job': 'Manager', 'dept': 10}
Search
[35]: #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
[35]: <pymongo.cursor.Cursor at 0x2a8418b5fc0>
[31]: for x in client['mydb']['emp'].find({}):
print(x)
{'_id': ObjectId('6486e4416d0c5b397f0dcde9'), 'ename': 'Sanjay Mathapati',
'age': 45, 'language': ['Python', 'c#', 'c++', 'MongoDB']}
{'_id': ObjectId('6486e5bc6d0c5b397f0dcdea'), 'ename': 'swati', 'job':
'Manager', 'sal': 50000, 'dept': 10}
{'_id': ObjectId('6486e5bc6d0c5b397f0dcdeb'), 'ename': 'Pratiksha', 'job':
'Analyst', 'sal': 25000, 'dept': 10}
{'_id': ObjectId('6486e5bc6d0c5b397f0dcdec'), 'ename': 'Kirti', 'job':
'Manager', 'sal': 30000, 'dept': 20}
{'_id': ObjectId('6486e6656d0c5b397f0dcdf0'), 'empno': 101, 'ename': 'Sanjay',
'sal': 50000, 'job': 'Manager', 'dept': 10}
{'_id': ObjectId('6486e6656d0c5b397f0dcdf1'), 'empno': 102, 'ename': 'Prakash',
'sal': 20000, 'job': 'Analyst', 'dept': 20}
{'_id': ObjectId('6486e6656d0c5b397f0dcdf2'), 'empno': 103, 'ename': 'Priti',
'sal': 30000, 'job': 'Manager', 'dept': 10}
[40]: #less than operator
for x in client['mydb']['emp'].find({ "sal": { "$gt": 30000}}):
print(x)
{'_id': ObjectId('6486e5bc6d0c5b397f0dcdeb'), 'ename': 'Pratiksha', 'job':
'Analyst', 'sal': 25000, 'dept': 10}
{'_id': ObjectId('6486e6656d0c5b397f0dcdf1'), 'empno': 102, 'ename': 'Prakash',
7
'sal': 20000, 'job': 'Analyst', 'dept': 20}
[41]: #AND
for x in client['mydb']['emp'].find({ "$and":[{"job":"Manager"},{"dept":10}]}):
print(x)
{'_id': ObjectId('6486e5bc6d0c5b397f0dcdea'), 'ename': 'swati', 'job':
'Manager', 'sal': 50000, 'dept': 10}
{'_id': ObjectId('6486e6656d0c5b397f0dcdf0'), 'empno': 101, 'ename': 'Sanjay',
'sal': 50000, 'job': 'Manager', 'dept': 10}
{'_id': ObjectId('6486e6656d0c5b397f0dcdf2'), 'empno': 103, 'ename': 'Priti',
'sal': 30000, 'job': 'Manager', 'dept': 10}
[81]: #OR
for x in client['empdb']['emp'].find( { "$or":[{"job":"Manager"},{"dept":10}] ␣
↪} ):
print(x)
{'_id': ObjectId('6131ae6d97638a385d5f6140'), 'ename': 'swati', 'job':
'Manager', 'sal': 50000, 'dept': 10}
{'_id': ObjectId('6131ae6d97638a385d5f6141'), 'ename': 'Pratiksha', 'job':
'Analyst', 'sal': 25000, 'dept': 10}
{'_id': ObjectId('6131ae6d97638a385d5f6142'), 'ename': 'Kirti', 'job':
'Manager', 'sal': 30000, 'dept': 20}
{'_id': ObjectId('6131af0997638a385d5f6143'), 'empno': 101, 'ename': 'Sanjay',
'sal': 50000, 'job': 'Manager', 'dept': 10}
{'_id': ObjectId('6131af0997638a385d5f6145'), 'empno': 103, 'ename': 'Priti',
'sal': 30000, 'job': 'Manager', 'dept': 10}
[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'}
[26]: data = client['empdb']['emp'].find( { },{"ename":1} ).sort("ename")
for x in data:
print(x)
8
{'_id': 101, 'ename': 'ashish'}
{'_id': 102, 'ename': 'ashish'}
{'_id': ObjectId('6486ff56b4a4a70472fd4074'), 'ename': 'mate'}
{'_id': ObjectId('6486fec3e46a49d9f422fab1'), 'ename': 'sanjay'}
[87]: #delete
client['empdb']['emp'].delete_one({"ename":"Priti"})
[87]: <pymongo.results.DeleteResult at 0x183537dbf40>
[53]: data = client['empdb']['emp'].find( { },{"ename":1} ).sort("ename")
for x in data:
print(x)
{'_id': '206', 'ename': ' Deepak Patil '}
{'_id': ObjectId('613050abe782db379d60b5c9'), 'ename': 'Dinesh'}
{'_id': ObjectId('61319ca797638a385d5f613c'), 'ename': 'Kirti'}
{'_id': ObjectId('61319ca797638a385d5f613b'), 'ename': 'Pratiksha'}
{'_id': ObjectId('613062291eab8daacf1acd87'), 'ename': 'Priti'}
{'_id': ObjectId('613062291eab8daacf1acd86'), 'ename': 'Rajesh'}
{'_id': ObjectId('613050abe782db379d60b5ca'), 'ename': 'Ruhi'}
{'_id': ObjectId('613062291eab8daacf1acd85'), 'ename': 'Sanjay'}
{'_id': ObjectId('61319b1397638a385d5f6139'), 'ename': 'Sanjay Mathapati'}
{'_id': ObjectId('613050abe782db379d60b5c8'), 'ename': 'Vilas'}
{'_id': ObjectId('61319ca797638a385d5f613a'), 'ename': 'swati'}
[88]: #Delete Many
client['empdb']['emp'].delete_many({})
[88]: <pymongo.results.DeleteResult at 0x18353d9bb00>