- Python MongoDB - Discussion
- Python MongoDB - Useful Resources
- Python MongoDB - Quick Guide
- Python MongoDB - Limit
- Python MongoDB - Update
- Python MongoDB - Drop Collection
- Python MongoDB - Delete Document
- Python MongoDB - Sort
- Python MongoDB - Query
- Python MongoDB - Find
- Python MongoDB - Insert Document
- Python MongoDB - Create Collection
- Python MongoDB - Create Database
- Python MongoDB - Introduction
- Python MongoDB - Home
Selected Reading
- Who is Who
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
Python MongoDB - Find
You can read/retrieve stored documents from MongoDB using the find() method. This method retrieves and displays all the documents in MongoDB in a non-structured way.
Syntax
Following is the syntax of the find() method.
>db.COLLECTION_NAME.find()
Example
Assume we have inserted 3 documents into a database named testDB in a collection named sample using the following queries −
> use testDB > db.createCollection("sample") > data = [ {"_id": "1001", "name": "Ram", "age": "26", "city": "Hyderabad"}, {"_id": "1002", "name" : "Rahim", "age" : 27, "city" : "Bangalore" }, {"_id": "1003", "name" : "Robert", "age" : 28, "city" : "Mumbai" } ] > db.sample.insert(data)
You can retrieve the inserted documents using the find() method as −
> use testDB switched to db testDB > db.sample.find() { "_id" : "1001", "name" : "Ram", "age" : "26", "city" : "Hyderabad" } { "_id" : "1002", "name" : "Rahim", "age" : 27, "city" : "Bangalore" } { "_id" : "1003", "name" : "Robert", "age" : 28, "city" : "Mumbai" } >
You can also retrieve first document in the collection using the findOne() method as −
> db.sample.findOne() { "_id" : "1001", "name" : "Ram", "age" : "26", "city" : "Hyderabad" }
Retrieving Data (find) Using Python
The find_One() method of pymongo is used to retrieve a single document based on your query, in case of no matches this method returns nothing and if you doesn’t use any query it returns the first document of the collection.
This method comes handy whenever you need to retrieve only one document of a result or, if you are sure that your query returns only one document.
Example
Following python example retrieve first document of a collection −
from pymongo import MongoCpent #Creating a pymongo cpent cpent = MongoCpent( localhost , 27017) #Getting the database instance db = cpent[ mydatabase ] #Creating a collection coll = db[ example ] #Inserting document into a collection data = [ {"_id": "101", "name": "Ram", "age": "26", "city": "Hyderabad"}, {"_id": "102", "name": "Rahim", "age": "27", "city": "Bangalore"}, {"_id": "103", "name": "Robert", "age": "28", "city": "Mumbai"} ] res = coll.insert_many(data) print("Data inserted ......") print(res.inserted_ids) #Retrieving the first record using the find_one() method print("First record of the collection: ") print(coll.find_one()) #Retrieving a record with is 103 using the find_one() method print("Record whose id is 103: ") print(coll.find_one({"_id": "103"}))
Output
Data inserted ...... [ 101 , 102 , 103 ] First record of the collection: { _id : 101 , name : Ram , age : 26 , city : Hyderabad } Record whose id is 103: { _id : 103 , name : Robert , age : 28 , city : Mumbai }
To get multiple documents in a single query (single call od find method), you can use the find() method of the pymongo. If haven’t passed any query, this returns all the documents of a collection and, if you have passed a query to this method, it returns all the matched documents.
Example
#Getting the database instance db = cpent[ myDB ] #Creating a collection coll = db[ example ] #Inserting document into a collection data = [ {"_id": "101", "name": "Ram", "age": "26", "city": "Hyderabad"}, {"_id": "102", "name": "Rahim", "age": "27", "city": "Bangalore"}, {"_id": "103", "name": "Robert", "age": "28", "city": "Mumbai"} ] res = coll.insert_many(data) print("Data inserted ......") #Retrieving all the records using the find() method print("Records of the collection: ") for doc1 in coll.find(): print(doc1) #Retrieving records with age greater than 26 using the find() method print("Record whose age is more than 26: ") for doc2 in coll.find({"age":{"$gt":"26"}}): print(doc2)
Output
Data inserted ...... Records of the collection: { _id : 101 , name : Ram , age : 26 , city : Hyderabad } { _id : 102 , name : Rahim , age : 27 , city : Bangalore } { _id : 103 , name : Robert , age : 28 , city : Mumbai } Record whose age is more than 26: { _id : 102 , name : Rahim , age : 27 , city : Bangalore } { _id : 103 , name : Robert , age : 28 , city : Mumbai }Advertisements