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

MongoDB Using Python2

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)
13 views

MongoDB Using Python2

Uploaded by

johibel889
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 9

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>

You might also like