MongoDB Using Python
MongoDB Using Python
[3]: try:
import os
import sys
import io
import pymongo
import json
from pymongo import MongoClient
from bson.objectid import ObjectId
[7]: client
1
[9]: #Getting all DB Names
client.list_database_names()
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"]
})
[16]: client['mydb']['emp'].find()
[ ]:
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)
client['mydb']['emp'].insert_many(data)
3
[30]: InsertManyResult([ObjectId('674addac7caf0f7fc48613b2'),
ObjectId('674addac7caf0f7fc48613b3'), ObjectId('674addac7caf0f7fc48613b4')],
acknowledged=True)
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
5
[46]: mydb = client["mydb"]
mycol = mydb["emp"]
#client['mydb']['emp'].update(myquery,newvalues)
x = mycol.update_many(myquery, newvalues)
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
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}
[66]: #AND
for x in client['mydb']['emp'].find({ "$and":[{"job":"Manager"},{"dept":10}]}):
print(x)
7
[68]: #OR
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)
for x in data:
print(x)
[74]: #delete
client['empdb']['emp'].delete_one({"ename":"Priti"})
for x in data:
print(x)
client['empdb']['emp'].delete_many({})