MongoDB With Python
MongoDB is a document database with the scalability and flexibility that you want with the querying and
indexing that you need
Requirements:
Install MongoDB Community Server
Download Mongosh
Pip install pymongo
import pymongo
Creating a Database
 To create a database in MongoDB, start by creating a MongoClient object, then specify a
connection URL with the correct ip address and the name of the database you want to create.
 MongoDB will create the database if it does not exist, and make a connection to it.
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["avanthi"]
Creating a Collection
A collection in MongoDB is the same as a table in SQL databases.
 To 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["avanthi"]
mycol = mydb["customers"]
Insert Into Collection
 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["avanthi"]
mycol = mydb["customers"]
mydict = { “name”: “RKREDDY”, “address”: “Hyderabad”: “college”: “Avanthi”}
x = mycol.insert_one(mydict)
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["avanthi"]
mycol = mydb["customers"]
mylist = [
{ "name": "rkr", "address": "Nandhyal"},
{ "name": "Jyothi", "address": "Amaravathi"},
{ "name": "Ramya", "address": "Kmamareddy"},
{ "name": "Ramya", "address": "Siddipet"},
{ "name": "Sweety", "address": "Karimanagar"},
{ "name": "Anil", "address": "Kurnool"},
{ "name": "Vijay", "address": "DSNR"},
{ "name": "Madhu", "address": "Kakinada"}
]
x = mycol.insert_many(mylist)
#print list of the _id values of the inserted documents:
print(x.inserted_ids)
Find One
 In MongoDB we use the find() and find_one() methods to find data in a collection.
 Just like the SELECT statement is used to find data in a table in a MySQL database.
 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["avanthi"]
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["avanthi"]
mycol = mydb["customers"]
for x in mycol.find():
print(x)
Return Only Some Fields
 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["avanthi"]
mycol = mydb["customers"]
for x in mycol.find({},{ "_id": 0, "name": 1, "address": 1 }):
print(x)
 You are not allowed to specify both 0 and 1 values in the same object
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["avanthi"]
mycol = mydb["customers"]
for x in mycol.find({},{ "address": 0 }):
print(x)
Filter the 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["avanthi"]
mycol = mydb["customers"]
myquery = { "address": "kurnool" }
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["avanthi"]
mycol = mydb["customers"]
myquery = { "address": { "$gt": "K" } }
mydoc = mycol.find(myquery)
for x in mydoc:
print(x)
 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["avanthi"]
mycol = mydb["customers"]
myquery = { "address": { "$regex": "^R" } }
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["aavanthi"]
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["avanthi"]
mycol = mydb["customers"]
mydoc = mycol.find().sort("name", -1)
for x in mydoc:
print(x)
Delete Document
 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["avanthi"]
mycol = mydb["customers"]
myquery = { "address": "Kurnool" }
mycol.delete_one(myquery)
Delete Many Documents
 To delete more than one document, use the delete_many() method.
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["avanthi"]
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["avanthi"]
mycol = mydb["customers"]
x = mycol.delete_many({})
print(x.deleted_count, " documents deleted.")
Delete Collection(DROP)
 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["avanthi"]
mycol = mydb["customers"]
mycol.drop()
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.
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["avanthi"]
mycol = mydb["customers"]
myquery = { "address": "Nandhyal" }
newvalues = { "$set": { "address": "Ongole" } }
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.
 Update all documents where the address starts with the letter "S":
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["avanthi"]
mycol = mydb["customers"]
myquery = { "address": { "$regex": "^K" } }
newvalues = { "$set": { "name": "Ramakrishna" } }
x = mycol.update_many(myquery, newvalues)
print(x.modified_count, "documents updated.")
Limit the Result
 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:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["avanthi"]
mycol = mydb["customers"]
myresult = mycol.find().limit(5)
#print the result:
for x in myresult:
print(x)

Mongodatabase with Python for Students.pptx

  • 1.
    MongoDB With Python MongoDBis a document database with the scalability and flexibility that you want with the querying and indexing that you need Requirements: Install MongoDB Community Server Download Mongosh Pip install pymongo import pymongo
  • 2.
    Creating a Database To create a database in MongoDB, start by creating a MongoClient object, then specify a connection URL with the correct ip address and the name of the database you want to create.  MongoDB will create the database if it does not exist, and make a connection to it. import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") mydb = myclient["avanthi"]
  • 3.
    Creating a Collection Acollection in MongoDB is the same as a table in SQL databases.  To 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["avanthi"] mycol = mydb["customers"]
  • 4.
    Insert Into Collection 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["avanthi"] mycol = mydb["customers"] mydict = { “name”: “RKREDDY”, “address”: “Hyderabad”: “college”: “Avanthi”} x = mycol.insert_one(mydict)
  • 5.
    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["avanthi"] mycol = mydb["customers"] mylist = [ { "name": "rkr", "address": "Nandhyal"}, { "name": "Jyothi", "address": "Amaravathi"}, { "name": "Ramya", "address": "Kmamareddy"}, { "name": "Ramya", "address": "Siddipet"}, { "name": "Sweety", "address": "Karimanagar"}, { "name": "Anil", "address": "Kurnool"}, { "name": "Vijay", "address": "DSNR"}, { "name": "Madhu", "address": "Kakinada"} ] x = mycol.insert_many(mylist) #print list of the _id values of the inserted documents: print(x.inserted_ids)
  • 7.
    Find One  InMongoDB we use the find() and find_one() methods to find data in a collection.  Just like the SELECT statement is used to find data in a table in a MySQL database.  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["avanthi"] mycol = mydb["customers"] x = mycol.find_one() print(x)
  • 8.
    Find All  Toselect 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["avanthi"] mycol = mydb["customers"] for x in mycol.find(): print(x)
  • 9.
    Return Only SomeFields  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["avanthi"] mycol = mydb["customers"] for x in mycol.find({},{ "_id": 0, "name": 1, "address": 1 }): print(x)
  • 10.
     You arenot allowed to specify both 0 and 1 values in the same object import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") mydb = myclient["avanthi"] mycol = mydb["customers"] for x in mycol.find({},{ "address": 0 }): print(x)
  • 11.
    Filter the 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["avanthi"] mycol = mydb["customers"] myquery = { "address": "kurnool" } mydoc = mycol.find(myquery) for x in mydoc: print(x)
  • 12.
    Advanced Query  Tomake 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["avanthi"] mycol = mydb["customers"] myquery = { "address": { "$gt": "K" } } mydoc = mycol.find(myquery) for x in mydoc: print(x)
  • 13.
     To findonly 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["avanthi"] mycol = mydb["customers"] myquery = { "address": { "$regex": "^R" } } mydoc = mycol.find(myquery) for x in mydoc: print(x)
  • 14.
    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["aavanthi"] mycol = mydb["customers"] mydoc = mycol.find().sort("name") for x in mydoc: print(x)
  • 15.
    Sort Descending  Usethe 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["avanthi"] mycol = mydb["customers"] mydoc = mycol.find().sort("name", -1) for x in mydoc: print(x)
  • 16.
    Delete Document  Todelete 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["avanthi"] mycol = mydb["customers"] myquery = { "address": "Kurnool" } mycol.delete_one(myquery)
  • 17.
    Delete Many Documents To delete more than one document, use the delete_many() method. import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") mydb = myclient["avanthi"] mycol = mydb["customers"] myquery = { "address": {"$regex": "^S"} } x = mycol.delete_many(myquery) print(x.deleted_count, " documents deleted.")
  • 18.
    Delete All Documentsin 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["avanthi"] mycol = mydb["customers"] x = mycol.delete_many({}) print(x.deleted_count, " documents deleted.")
  • 19.
    Delete Collection(DROP)  Youcan 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["avanthi"] mycol = mydb["customers"] mycol.drop()
  • 20.
    Update Collection  Youcan 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. import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") mydb = myclient["avanthi"] mycol = mydb["customers"] myquery = { "address": "Nandhyal" } newvalues = { "$set": { "address": "Ongole" } } mycol.update_one(myquery, newvalues) #print "customers" after the update: for x in mycol.find(): print(x)
  • 21.
    Update Many  Toupdate all documents that meets the criteria of the query, use the update_many() method.  Update all documents where the address starts with the letter "S": import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") mydb = myclient["avanthi"] mycol = mydb["customers"] myquery = { "address": { "$regex": "^K" } } newvalues = { "$set": { "name": "Ramakrishna" } } x = mycol.update_many(myquery, newvalues) print(x.modified_count, "documents updated.")
  • 22.
    Limit the Result 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: import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") mydb = myclient["avanthi"] mycol = mydb["customers"] myresult = mycol.find().limit(5) #print the result: for x in myresult: print(x)