SlideShare a Scribd company logo
2
Most read
3
Most read
4
Most read
MONGODB WITH PYTHON
MongoDB is a cross-platform, document-oriented database that works on the
concept of collections and documents. MongoDB offers high speed, high availability,
and high scalability.
The next question which arises in the mind of the people is “Why MongoDB”?
Reasons to opt for MongoDB :
It supports hierarchical data structure
(It supports associate arrays like Dictionaries in Python.)
Built-in Python drivers to connect python-application with Database. Example-
PyMongo
It is designed for Big Data.
Deployment of MongoDB is very easy.
Python has a native library for MongoDB. The name of the available library is “PyMongo”. To import this,
execute the following command:
from pymongo import MongoClient
Create a connection :
The very first after importing the module is to create a MongoClient.
from pymongo import MongoClient
client = MongoClient(“mongodb://localhost:27017/”)
Access DataBase Objects : To create a database or switch to an existing database we use:
mydatabase = client[‘name_of_the_database’]
Accessing the Collection : Collections are equivalent to Tables in RDBMS. We access a collection in PyMongo in
the same way as we access the Tables in the RDBMS. To access the table, say table name “myTable” of the
database, say “mydatabase”.
EX: mydb = client[‘mydatabase’]
Check if Database Exists
print(myclient.list_database_names())
CREATING COLLECTIONS
Create a collection in MongoDB, use database object and specify the name of the
collection you want to create.
MongoDB will create the collection if it does not exist.
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
INSERT A DOCUMENT
To insert a record, or document as it is called in MongoDB, into a collection, we use
the insert_one() method.
The first parameter of the insert_one() method is a dictionary containing the
name(s) and value(s) of each field in the document you want to insert.
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
mydict = { "name": "John", "address": "Highway 37" }
x = mycol.insert_one(mydict)
Return the _id Field
The insert_one() method returns a InsertOneResult object, which has a property, inserted_id, that
holds the id of the inserted document.
mydict = { "name": "Peter", "address": "Lowstreet 27" }
x = mycol.insert_one(mydict)
print(x.inserted_id)
Insert Multiple Documents
To insert multiple documents into a collection in MongoDB, we use the insert_many() method.
The first parameter of the insert_many() method is a list containing dictionaries with the data you want to
insert:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
mylist = [
{ "name": "Amy", "address": "Apple st 652"},
{ "name": "Hannah", "address": "Mountain 21"},
{ "name": "Michael", "address": "Valley 345"},
{ "name": "Sandy", "address": "Ocean blvd 2"},
{ "name": "Betty", "address": "Green Grass 1"},
{ "name": "Richard", "address": "Sky st 331"},
{ "name": "Susan", "address": "One way 98"},
{ "name": "Vicky", "address": "Yellow Garden 2"},
{ "name": "Ben", "address": "Park Lane 38"},
{ "name": "William", "address": "Central st 954"},
{ "name": "Chuck", "address": "Main Road 989"},
{ "name": "Viola", "address": "Sideway 1633"}
]
x = mycol.insert_many(mylist)
#print list of the _id values of the inserted documents:
print(x.inserted_ids)
INSERT RECORDS WITH SPECIFIC IDS
If you do not want MongoDB to assign unique ids for you document, you can specify
the _id field when you insert the document(s).
Remember that the values has to be unique. Two documents cannot have the same
_id.
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
mylist = [
{ "_id": 1, "name": "John", "address": "Highway 37"},
{ "_id": 2, "name": "Peter", "address": "Lowstreet 27"},
{ "_id": 3, "name": "Amy", "address": "Apple st 652"},
{ "_id": 4, "name": "Hannah", "address": "Mountain 21"},
{ "_id": 5, "name": "Michael", "address": "Valley 345"},
{ "_id": 6, "name": "Sandy", "address": "Ocean blvd 2"},
{ "_id": 7, "name": "Betty", "address": "Green Grass 1"},
{ "_id": 8, "name": "Richard", "address": "Sky st 331"},
{ "_id": 9, "name": "Susan", "address": "One way 98"},
{ "_id": 10, "name": "Vicky", "address": "Yellow Garden 2"},
{ "_id": 11, "name": "Ben", "address": "Park Lane 38"},
{ "_id": 12, "name": "William", "address": "Central st 954"},
{ "_id": 13, "name": "Chuck", "address": "Main Road 989"},
{ "_id": 14, "name": "Viola", "address": "Sideway 1633"}
]
x = mycol.insert_many(mylist)
#print list of the _id values of the inserted documents:
print(x.inserted_ids)
FIND
Find One
To select data from a collection in MongoDB, we can use the find_one() method.
The find_one() method returns the first occurrence in the selection.
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
x = mycol.find_one()
print(x)
FIND ALL
To select data from a table in MongoDB, we can also use the find() method.
The find() method returns all occurrences in the selection.
The first parameter of the find() method is a query object. In this example we use
an empty query object, which selects all documents in the collection.
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find():
print(x)
RETURN ONLY SOME SPECIFIC FIELD
The second parameter of the find() method is an object describing which fields to include in the result.
This parameter is optional, and if omitted, all fields will be included in the result.
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find({},{ "_id": 0, "name": 1, "address": 1 }):
print(x)
This example will exclude "address" from the result:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find({},{ "address": 0 }):
print(x)
FILTER BY RESULT
When finding documents in a collection, you can filter the result by using a query object.
The first argument of the find() method is a query object, and is used to limit the search.
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
myquery = { "address": "Park Lane 38" }
mydoc = mycol.find(myquery)
for x in mydoc:
print(x)
Advanced Query:
To make advanced queries you can use modifiers as values in the query object.
E.g. to find the documents where the "address" field starts with the letter "S" or higher (alphabetically), use the greater than
modifier: {"$gt": "S"}:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
myquery = { "address": { "$gt": "S" } }
mydoc = mycol.find(myquery)
for x in mydoc:
print(x)
Filter With Regular Expressions
You can also use regular expressions as a modifier.
To find only the documents where the "address" field starts with the letter "S", use the regular
expression {"$regex": "^S"}:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
myquery = { "address": { "$regex": "^S" } }
mydoc = mycol.find(myquery)
for x in mydoc:
print(x)
Sort the Result
Use the sort() method to sort the result in ascending or descending order.
The sort() method takes one parameter for "fieldname" and one parameter for "direction" (ascending is the default
direction).
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
mydoc = mycol.find().sort("name")
for x in mydoc:
print(x)
SORT DESCENDING
Use the value -1 as the second parameter to sort descending.
sort("name", 1) #ascending
sort("name", -1) #descending
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
mydoc = mycol.find().sort("name", -1)
for x in mydoc:
print(x)
DELETE
To delete one document, we use the delete_one() method.
The first parameter of the delete_one() method is a query object defining which document to delete.
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
myquery = { "address": "Mountain 21" }
mycol.delete_one(myquery)
Delete Many Documents
To delete more than one document, use the delete_many() method.
The first parameter of the delete_many() method is a query object defining which documents to delete.
Delete Many Documents
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
myquery = { "address": {"$regex": "^S"} }
x = mycol.delete_many(myquery)
print(x.deleted_count, " documents deleted.")
Delete All Documents in a Collection
To delete all documents in a collection, pass an empty query object to the delete_many() method:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
x = mycol.delete_many({})
print(x.deleted_count, " documents deleted.")
DROP COLLECTIONS
You can delete a table, or collection as it is called in MongoDB, by using the drop() method.
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
mycol.drop()
The drop() method returns true if the collection was dropped successfully, and false if the collection
does not exist.
Update Collection
You can update a record, or document as it is called in MongoDB, by using the update_one() method.
The first parameter of the update_one() method is a query object defining which document to
update.
UPDATE
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
myquery = { "address": "Valley 345" }
newvalues = { "$set": { "address": "Canyon 123" } }
mycol.update_one(myquery, newvalues)
#print "customers" after the update:
for x in mycol.find():
print(x)
Update Many
To update all documents that meets the criteria of the query, use the update_many() method.
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
myquery = { "address": { "$regex": "^S" } }
newvalues = { "$set": { "name": "Minnie" } }
x = mycol.update_many(myquery, newvalues)
print(x.modified_count, "documents updated.")
LIMIT
To limit the result in MongoDB, we use the limit() method.
The limit() method takes one parameter, a number defining how many documents to return.
Consider you have a "customers" collection:Customers
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
myresult = mycol.find().limit(5)
#print the result:
for x in myresult:
print(x)

More Related Content

What's hot (17)

DOCX
program C++ Atm
Reynes E. Tekay
 
PPTX
Hash function
Salman Memon
 
PDF
Python and MongoDB
Norberto Leite
 
PDF
Online ecommerce website srs
SM Nurnobi
 
PDF
Bitcoin price prediction
dataalcott
 
PPTX
project (Salon Management).pptx
ssuserefca8b
 
PPTX
Authentication and Authorization in Asp.Net
Shivanand Arur
 
PPT
IPC
Ramasubbu .P
 
PPTX
Cryptography
Sagar Janagonda
 
PPTX
Message digest 5
Tirthika Bandi
 
PPTX
El Gamal Cryptosystem
Adri Jovin
 
PPTX
Http protocol
Arpita Naik
 
PPTX
army target detection using machine learning
AshokReddy902146
 
PPT
Steganography
Shankar Murthy
 
PDF
Introduzione alla Posta Elettronica Certificata (PEC): le regole tecniche
Enrico Zimuel
 
PPTX
Generators & Decorators.pptx
IrfanShaik98
 
PPTX
Cryptography-Hash-Functions.pptx
AngeloChangcoco
 
program C++ Atm
Reynes E. Tekay
 
Hash function
Salman Memon
 
Python and MongoDB
Norberto Leite
 
Online ecommerce website srs
SM Nurnobi
 
Bitcoin price prediction
dataalcott
 
project (Salon Management).pptx
ssuserefca8b
 
Authentication and Authorization in Asp.Net
Shivanand Arur
 
Cryptography
Sagar Janagonda
 
Message digest 5
Tirthika Bandi
 
El Gamal Cryptosystem
Adri Jovin
 
Http protocol
Arpita Naik
 
army target detection using machine learning
AshokReddy902146
 
Steganography
Shankar Murthy
 
Introduzione alla Posta Elettronica Certificata (PEC): le regole tecniche
Enrico Zimuel
 
Generators & Decorators.pptx
IrfanShaik98
 
Cryptography-Hash-Functions.pptx
AngeloChangcoco
 

Similar to Python With MongoDB in advanced Python.pptx (20)

PPTX
Mongodatabase with Python for Students.pptx
Ramakrishna Reddy Bijjam
 
KEY
MongoDB, PHP and the cloud - php cloud summit 2011
Steven Francia
 
PPTX
Mongo db basic installation
Kishor Parkhe
 
PPTX
Back to Basics, webinar 2: La tua prima applicazione MongoDB
MongoDB
 
PPTX
Sekilas PHP + mongoDB
Hadi Ariawan
 
PDF
MongoDB With Style
Gabriele Lana
 
PDF
Practical Google App Engine Applications In Py
Eric ShangKuan
 
PPTX
Dev Jumpstart: Build Your First App with MongoDB
MongoDB
 
PDF
San Francisco Java User Group
kchodorow
 
PPTX
Morphia, Spring Data & Co.
Tobias Trelle
 
PPTX
MongoDB - Back to Basics - La tua prima Applicazione
Massimo Brignoli
 
PPTX
Back to basics Italian webinar 2 Mia prima applicazione MongoDB
MongoDB
 
PPTX
Back to Basics 2017 - Your First MongoDB Application
Joe Drumgoole
 
PPTX
Back to Basics: My First MongoDB Application
MongoDB
 
PPTX
Webinar: General Technical Overview of MongoDB for Dev Teams
MongoDB
 
KEY
Schema Design with MongoDB
rogerbodamer
 
PDF
Aggregation Framework MongoDB Days Munich
Norberto Leite
 
PPTX
Python Code Camp for Professionals 4/4
DEVCON
 
PDF
Nosql part3
Ruru Chowdhury
 
PDF
Analytics with MongoDB Aggregation Framework and Hadoop Connector
Henrik Ingo
 
Mongodatabase with Python for Students.pptx
Ramakrishna Reddy Bijjam
 
MongoDB, PHP and the cloud - php cloud summit 2011
Steven Francia
 
Mongo db basic installation
Kishor Parkhe
 
Back to Basics, webinar 2: La tua prima applicazione MongoDB
MongoDB
 
Sekilas PHP + mongoDB
Hadi Ariawan
 
MongoDB With Style
Gabriele Lana
 
Practical Google App Engine Applications In Py
Eric ShangKuan
 
Dev Jumpstart: Build Your First App with MongoDB
MongoDB
 
San Francisco Java User Group
kchodorow
 
Morphia, Spring Data & Co.
Tobias Trelle
 
MongoDB - Back to Basics - La tua prima Applicazione
Massimo Brignoli
 
Back to basics Italian webinar 2 Mia prima applicazione MongoDB
MongoDB
 
Back to Basics 2017 - Your First MongoDB Application
Joe Drumgoole
 
Back to Basics: My First MongoDB Application
MongoDB
 
Webinar: General Technical Overview of MongoDB for Dev Teams
MongoDB
 
Schema Design with MongoDB
rogerbodamer
 
Aggregation Framework MongoDB Days Munich
Norberto Leite
 
Python Code Camp for Professionals 4/4
DEVCON
 
Nosql part3
Ruru Chowdhury
 
Analytics with MongoDB Aggregation Framework and Hadoop Connector
Henrik Ingo
 
Ad

More from Ramakrishna Reddy Bijjam (20)

PPTX
Regular expressions,function and glob module.pptx
Ramakrishna Reddy Bijjam
 
PPTX
Natural Language processing using nltk.pptx
Ramakrishna Reddy Bijjam
 
PPTX
Parsing HTML read and write operations and OS Module.pptx
Ramakrishna Reddy Bijjam
 
PPTX
JSON, XML and Data Science introduction.pptx
Ramakrishna Reddy Bijjam
 
PPTX
What is FIle and explanation of text files.pptx
Ramakrishna Reddy Bijjam
 
PPTX
BINARY files CSV files JSON files with example.pptx
Ramakrishna Reddy Bijjam
 
DOCX
VBS control structures for if do whilw.docx
Ramakrishna Reddy Bijjam
 
DOCX
Builtinfunctions in vbscript and its types.docx
Ramakrishna Reddy Bijjam
 
DOCX
VBScript Functions procedures and arrays.docx
Ramakrishna Reddy Bijjam
 
DOCX
VBScript datatypes and control structures.docx
Ramakrishna Reddy Bijjam
 
PPTX
Numbers and global functions conversions .pptx
Ramakrishna Reddy Bijjam
 
DOCX
Structured Graphics in dhtml and active controls.docx
Ramakrishna Reddy Bijjam
 
DOCX
Filters and its types as wave shadow.docx
Ramakrishna Reddy Bijjam
 
PPTX
JavaScript Arrays and its types .pptx
Ramakrishna Reddy Bijjam
 
PPTX
JS Control Statements and Functions.pptx
Ramakrishna Reddy Bijjam
 
PPTX
Code conversions binary to Gray vice versa.pptx
Ramakrishna Reddy Bijjam
 
PDF
FIXED and FLOATING-POINT-REPRESENTATION.pdf
Ramakrishna Reddy Bijjam
 
PPTX
Handling Missing Data for Data Analysis.pptx
Ramakrishna Reddy Bijjam
 
PPTX
Data Frame Data structure in Python pandas.pptx
Ramakrishna Reddy Bijjam
 
PPTX
Series data structure in Python Pandas.pptx
Ramakrishna Reddy Bijjam
 
Regular expressions,function and glob module.pptx
Ramakrishna Reddy Bijjam
 
Natural Language processing using nltk.pptx
Ramakrishna Reddy Bijjam
 
Parsing HTML read and write operations and OS Module.pptx
Ramakrishna Reddy Bijjam
 
JSON, XML and Data Science introduction.pptx
Ramakrishna Reddy Bijjam
 
What is FIle and explanation of text files.pptx
Ramakrishna Reddy Bijjam
 
BINARY files CSV files JSON files with example.pptx
Ramakrishna Reddy Bijjam
 
VBS control structures for if do whilw.docx
Ramakrishna Reddy Bijjam
 
Builtinfunctions in vbscript and its types.docx
Ramakrishna Reddy Bijjam
 
VBScript Functions procedures and arrays.docx
Ramakrishna Reddy Bijjam
 
VBScript datatypes and control structures.docx
Ramakrishna Reddy Bijjam
 
Numbers and global functions conversions .pptx
Ramakrishna Reddy Bijjam
 
Structured Graphics in dhtml and active controls.docx
Ramakrishna Reddy Bijjam
 
Filters and its types as wave shadow.docx
Ramakrishna Reddy Bijjam
 
JavaScript Arrays and its types .pptx
Ramakrishna Reddy Bijjam
 
JS Control Statements and Functions.pptx
Ramakrishna Reddy Bijjam
 
Code conversions binary to Gray vice versa.pptx
Ramakrishna Reddy Bijjam
 
FIXED and FLOATING-POINT-REPRESENTATION.pdf
Ramakrishna Reddy Bijjam
 
Handling Missing Data for Data Analysis.pptx
Ramakrishna Reddy Bijjam
 
Data Frame Data structure in Python pandas.pptx
Ramakrishna Reddy Bijjam
 
Series data structure in Python Pandas.pptx
Ramakrishna Reddy Bijjam
 
Ad

Recently uploaded (20)

PDF
STATEMENT-BY-THE-HON.-MINISTER-FOR-HEALTH-ON-THE-COVID-19-OUTBREAK-AT-UG_revi...
nservice241
 
PDF
I3PM Industry Case Study Siemens on Strategic and Value-Oriented IP Management
MIPLM
 
PPTX
Iván Bornacelly - Presentation of the report - Empowering the workforce in th...
EduSkills OECD
 
PDF
DIGESTION OF CARBOHYDRATES ,PROTEINS AND LIPIDS
raviralanaresh2
 
PPTX
How to Send Email From Odoo 18 Website - Odoo Slides
Celine George
 
PPT
Indian Contract Act 1872, Business Law #MBA #BBA #BCOM
priyasinghy107
 
PPTX
Ward Management: Patient Care, Personnel, Equipment, and Environment.pptx
PRADEEP ABOTHU
 
PDF
Lesson 1 : Science and the Art of Geography Ecosystem
marvinnbustamante1
 
PPTX
Different types of inheritance in odoo 18
Celine George
 
DOCX
Lesson 1 - Nature and Inquiry of Research
marvinnbustamante1
 
PPTX
Building Powerful Agentic AI with Google ADK, MCP, RAG, and Ollama.pptx
Tamanna36
 
PPTX
Nitrogen rule, ring rule, mc lafferty.pptx
nbisen2001
 
PDF
Vani - The Voice of Excellence - Jul 2025 issue
Savipriya Raghavendra
 
PPTX
The Gift of the Magi by O Henry-A Story of True Love, Sacrifice, and Selfless...
Beena E S
 
PDF
WATERSHED MANAGEMENT CASE STUDIES - ULUGURU MOUNTAINS AND ARVARI RIVERpdf
Ar.Asna
 
PPTX
SD_GMRC5_Session 6AB_Dulog Pedagohikal at Pagtataya (1).pptx
NickeyArguelles
 
PPTX
ENGlish 8 lesson presentation PowerPoint.pptx
marawehsvinetshe
 
PPTX
Life and Career Skills Lesson 2.pptxProtective and Risk Factors of Late Adole...
ryangabrielcatalon40
 
PDF
Lesson 1 - Nature of Inquiry and Research.pdf
marvinnbustamante1
 
PPTX
DIGITAL CITIZENSHIP TOPIC TLE 8 MATATAG CURRICULUM
ROBERTAUGUSTINEFRANC
 
STATEMENT-BY-THE-HON.-MINISTER-FOR-HEALTH-ON-THE-COVID-19-OUTBREAK-AT-UG_revi...
nservice241
 
I3PM Industry Case Study Siemens on Strategic and Value-Oriented IP Management
MIPLM
 
Iván Bornacelly - Presentation of the report - Empowering the workforce in th...
EduSkills OECD
 
DIGESTION OF CARBOHYDRATES ,PROTEINS AND LIPIDS
raviralanaresh2
 
How to Send Email From Odoo 18 Website - Odoo Slides
Celine George
 
Indian Contract Act 1872, Business Law #MBA #BBA #BCOM
priyasinghy107
 
Ward Management: Patient Care, Personnel, Equipment, and Environment.pptx
PRADEEP ABOTHU
 
Lesson 1 : Science and the Art of Geography Ecosystem
marvinnbustamante1
 
Different types of inheritance in odoo 18
Celine George
 
Lesson 1 - Nature and Inquiry of Research
marvinnbustamante1
 
Building Powerful Agentic AI with Google ADK, MCP, RAG, and Ollama.pptx
Tamanna36
 
Nitrogen rule, ring rule, mc lafferty.pptx
nbisen2001
 
Vani - The Voice of Excellence - Jul 2025 issue
Savipriya Raghavendra
 
The Gift of the Magi by O Henry-A Story of True Love, Sacrifice, and Selfless...
Beena E S
 
WATERSHED MANAGEMENT CASE STUDIES - ULUGURU MOUNTAINS AND ARVARI RIVERpdf
Ar.Asna
 
SD_GMRC5_Session 6AB_Dulog Pedagohikal at Pagtataya (1).pptx
NickeyArguelles
 
ENGlish 8 lesson presentation PowerPoint.pptx
marawehsvinetshe
 
Life and Career Skills Lesson 2.pptxProtective and Risk Factors of Late Adole...
ryangabrielcatalon40
 
Lesson 1 - Nature of Inquiry and Research.pdf
marvinnbustamante1
 
DIGITAL CITIZENSHIP TOPIC TLE 8 MATATAG CURRICULUM
ROBERTAUGUSTINEFRANC
 

Python With MongoDB in advanced Python.pptx

  • 1. MONGODB WITH PYTHON MongoDB is a cross-platform, document-oriented database that works on the concept of collections and documents. MongoDB offers high speed, high availability, and high scalability. The next question which arises in the mind of the people is “Why MongoDB”? Reasons to opt for MongoDB : It supports hierarchical data structure (It supports associate arrays like Dictionaries in Python.) Built-in Python drivers to connect python-application with Database. Example- PyMongo It is designed for Big Data. Deployment of MongoDB is very easy.
  • 2. Python has a native library for MongoDB. The name of the available library is “PyMongo”. To import this, execute the following command: from pymongo import MongoClient Create a connection : The very first after importing the module is to create a MongoClient. from pymongo import MongoClient client = MongoClient(“mongodb://localhost:27017/”) Access DataBase Objects : To create a database or switch to an existing database we use: mydatabase = client[‘name_of_the_database’] Accessing the Collection : Collections are equivalent to Tables in RDBMS. We access a collection in PyMongo in the same way as we access the Tables in the RDBMS. To access the table, say table name “myTable” of the database, say “mydatabase”. EX: mydb = client[‘mydatabase’] Check if Database Exists print(myclient.list_database_names())
  • 3. CREATING COLLECTIONS Create a collection in MongoDB, use database object and specify the name of the collection you want to create. MongoDB will create the collection if it does not exist. import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") mydb = myclient["mydatabase"] mycol = mydb["customers"]
  • 4. INSERT A DOCUMENT To insert a record, or document as it is called in MongoDB, into a collection, we use the insert_one() method. The first parameter of the insert_one() method is a dictionary containing the name(s) and value(s) of each field in the document you want to insert. import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") mydb = myclient["mydatabase"] mycol = mydb["customers"] mydict = { "name": "John", "address": "Highway 37" } x = mycol.insert_one(mydict)
  • 5. Return the _id Field The insert_one() method returns a InsertOneResult object, which has a property, inserted_id, that holds the id of the inserted document. mydict = { "name": "Peter", "address": "Lowstreet 27" } x = mycol.insert_one(mydict) print(x.inserted_id) Insert Multiple Documents To insert multiple documents into a collection in MongoDB, we use the insert_many() method. The first parameter of the insert_many() method is a list containing dictionaries with the data you want to insert:
  • 6. import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") mydb = myclient["mydatabase"] mycol = mydb["customers"] mylist = [ { "name": "Amy", "address": "Apple st 652"}, { "name": "Hannah", "address": "Mountain 21"}, { "name": "Michael", "address": "Valley 345"}, { "name": "Sandy", "address": "Ocean blvd 2"}, { "name": "Betty", "address": "Green Grass 1"}, { "name": "Richard", "address": "Sky st 331"}, { "name": "Susan", "address": "One way 98"}, { "name": "Vicky", "address": "Yellow Garden 2"}, { "name": "Ben", "address": "Park Lane 38"}, { "name": "William", "address": "Central st 954"}, { "name": "Chuck", "address": "Main Road 989"}, { "name": "Viola", "address": "Sideway 1633"} ] x = mycol.insert_many(mylist) #print list of the _id values of the inserted documents: print(x.inserted_ids)
  • 7. INSERT RECORDS WITH SPECIFIC IDS If you do not want MongoDB to assign unique ids for you document, you can specify the _id field when you insert the document(s). Remember that the values has to be unique. Two documents cannot have the same _id. import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") mydb = myclient["mydatabase"] mycol = mydb["customers"]
  • 8. mylist = [ { "_id": 1, "name": "John", "address": "Highway 37"}, { "_id": 2, "name": "Peter", "address": "Lowstreet 27"}, { "_id": 3, "name": "Amy", "address": "Apple st 652"}, { "_id": 4, "name": "Hannah", "address": "Mountain 21"}, { "_id": 5, "name": "Michael", "address": "Valley 345"}, { "_id": 6, "name": "Sandy", "address": "Ocean blvd 2"}, { "_id": 7, "name": "Betty", "address": "Green Grass 1"}, { "_id": 8, "name": "Richard", "address": "Sky st 331"}, { "_id": 9, "name": "Susan", "address": "One way 98"}, { "_id": 10, "name": "Vicky", "address": "Yellow Garden 2"}, { "_id": 11, "name": "Ben", "address": "Park Lane 38"}, { "_id": 12, "name": "William", "address": "Central st 954"}, { "_id": 13, "name": "Chuck", "address": "Main Road 989"}, { "_id": 14, "name": "Viola", "address": "Sideway 1633"} ] x = mycol.insert_many(mylist) #print list of the _id values of the inserted documents: print(x.inserted_ids)
  • 9. FIND Find One To select data from a collection in MongoDB, we can use the find_one() method. The find_one() method returns the first occurrence in the selection. import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") mydb = myclient["mydatabase"] mycol = mydb["customers"] x = mycol.find_one() print(x)
  • 10. FIND ALL To select data from a table in MongoDB, we can also use the find() method. The find() method returns all occurrences in the selection. The first parameter of the find() method is a query object. In this example we use an empty query object, which selects all documents in the collection. import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") mydb = myclient["mydatabase"] mycol = mydb["customers"] for x in mycol.find(): print(x)
  • 11. RETURN ONLY SOME SPECIFIC FIELD The second parameter of the find() method is an object describing which fields to include in the result. This parameter is optional, and if omitted, all fields will be included in the result. import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") mydb = myclient["mydatabase"] mycol = mydb["customers"] for x in mycol.find({},{ "_id": 0, "name": 1, "address": 1 }): print(x) This example will exclude "address" from the result: import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") mydb = myclient["mydatabase"] mycol = mydb["customers"] for x in mycol.find({},{ "address": 0 }): print(x)
  • 12. FILTER BY RESULT When finding documents in a collection, you can filter the result by using a query object. The first argument of the find() method is a query object, and is used to limit the search. import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") mydb = myclient["mydatabase"] mycol = mydb["customers"] myquery = { "address": "Park Lane 38" } mydoc = mycol.find(myquery) for x in mydoc: print(x) Advanced Query: To make advanced queries you can use modifiers as values in the query object. E.g. to find the documents where the "address" field starts with the letter "S" or higher (alphabetically), use the greater than modifier: {"$gt": "S"}:
  • 13. import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") mydb = myclient["mydatabase"] mycol = mydb["customers"] myquery = { "address": { "$gt": "S" } } mydoc = mycol.find(myquery) for x in mydoc: print(x) Filter With Regular Expressions You can also use regular expressions as a modifier. To find only the documents where the "address" field starts with the letter "S", use the regular expression {"$regex": "^S"}:
  • 14. import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") mydb = myclient["mydatabase"] mycol = mydb["customers"] myquery = { "address": { "$regex": "^S" } } mydoc = mycol.find(myquery) for x in mydoc: print(x) Sort the Result Use the sort() method to sort the result in ascending or descending order. The sort() method takes one parameter for "fieldname" and one parameter for "direction" (ascending is the default direction). import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") mydb = myclient["mydatabase"] mycol = mydb["customers"] mydoc = mycol.find().sort("name") for x in mydoc: print(x)
  • 15. SORT DESCENDING Use the value -1 as the second parameter to sort descending. sort("name", 1) #ascending sort("name", -1) #descending import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") mydb = myclient["mydatabase"] mycol = mydb["customers"] mydoc = mycol.find().sort("name", -1) for x in mydoc: print(x)
  • 16. DELETE To delete one document, we use the delete_one() method. The first parameter of the delete_one() method is a query object defining which document to delete. import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") mydb = myclient["mydatabase"] mycol = mydb["customers"] myquery = { "address": "Mountain 21" } mycol.delete_one(myquery) Delete Many Documents To delete more than one document, use the delete_many() method. The first parameter of the delete_many() method is a query object defining which documents to delete.
  • 17. Delete Many Documents import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") mydb = myclient["mydatabase"] mycol = mydb["customers"] myquery = { "address": {"$regex": "^S"} } x = mycol.delete_many(myquery) print(x.deleted_count, " documents deleted.") Delete All Documents in a Collection To delete all documents in a collection, pass an empty query object to the delete_many() method: import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") mydb = myclient["mydatabase"] mycol = mydb["customers"] x = mycol.delete_many({}) print(x.deleted_count, " documents deleted.")
  • 18. DROP COLLECTIONS You can delete a table, or collection as it is called in MongoDB, by using the drop() method. import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") mydb = myclient["mydatabase"] mycol = mydb["customers"] mycol.drop() The drop() method returns true if the collection was dropped successfully, and false if the collection does not exist. Update Collection You can update a record, or document as it is called in MongoDB, by using the update_one() method. The first parameter of the update_one() method is a query object defining which document to update.
  • 19. UPDATE import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") mydb = myclient["mydatabase"] mycol = mydb["customers"] myquery = { "address": "Valley 345" } newvalues = { "$set": { "address": "Canyon 123" } } mycol.update_one(myquery, newvalues) #print "customers" after the update: for x in mycol.find(): print(x)
  • 20. Update Many To update all documents that meets the criteria of the query, use the update_many() method. import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") mydb = myclient["mydatabase"] mycol = mydb["customers"] myquery = { "address": { "$regex": "^S" } } newvalues = { "$set": { "name": "Minnie" } } x = mycol.update_many(myquery, newvalues) print(x.modified_count, "documents updated.")
  • 21. LIMIT To limit the result in MongoDB, we use the limit() method. The limit() method takes one parameter, a number defining how many documents to return. Consider you have a "customers" collection:Customers import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") mydb = myclient["mydatabase"] mycol = mydb["customers"] myresult = mycol.find().limit(5) #print the result: for x in myresult: print(x)