Last Updated : 26 Jul, 2025
MongoDB is an open-source NoSQL database designed to handle large volumes of data using collections and documents instead of tables. Its documents, similar to JSON, are stored in BSON format to support more data types. Combined with Python and libraries like pymongo, it allows developers to efficiently perform database operations and build scalable, data-driven applications.
Why Do We Need MongoDB in Python?Start MongoDB from the command prompt using the following command:
If starting with default settings:
mongod
When running directly with custom data directory:
mongod --dbpath "C:\data"
If MongoDB is installed as a Windows service:
Snapshot of terminal to show Mongodb runs on port 27017net start MongoDB
See port number by default is set 27017 (last 2-3 lines in above image).
Step 2: Install and Import PyMongoPyMongo is the native Python library for MongoDB.
To install PyMongo, open Command Prompt and run:
pip install pymongo
After installation, open a Python environment and import the library:
Step 3: Connect to MongoDB Server Locallyfrom pymongo import MongoClient
To connect to a local MongoDB server, create a MongoClient object:
client = MongoClient()
Connect to the default MongoDB host and port (localhost:27017) using the following command to create a MongoClient explicitly.
Step 3.1: Connect to MongoDB Atlas (Cloud Database)client = MongoClient("mongodb://localhost:27017/")
To connect to a cloud-based MongoDB database like MongoDB Atlas, follow these steps:
1. Create a MongoDB Atlas Account: Go to MongoDB Atlas and create an account if you don't already have one. Once logged in, create a new project, cluster, and database.
2. Get the Connection String: After creating the cluster, navigate to the Clusters tab, click Connect, and choose Connect your application. Select Python and copy the provided connection string.
3. The connection string typically looks like this:
mongodb+srv://<username>:<password>@cluster0.mongodb.net/test?retryWrites=true&w=majority
4. Use the Connection String in Python: Replace <username> and <password> with your MongoDB Atlas credentials.
client = MongoClient("mongodb+srv://<username>:<password>@cluster0.mongodb.net/test?retryWrites=true&w=majority")
This will connect your Python application to the cloud-based MongoDB cluster.
Step 4: Access/Create a DatabaseTo create a database or switch to an existing database use:
mydatabase = client["my_database"]
Or:
mydatabase = client.my_database
Step 5: Access/Create a CollectionNote: Database names should not contain dashes (-). The names like my-Table will raise an error. Use underscores (_) instead.
Collections are equivalent to Tables in Relational Database Management Systems (RDBMS). A collection in PyMongo is accessed similarly to how tables are accessed in RDBMS.
To access the table, table name “myTable” of the database “mydatabase”.
mycollection = mydatabase[‘myTable’]
MongoDB store the database in the form of dictionaries as shown:
record = {
title: 'MongoDB and Python',
description: 'MongoDB is no SQL database',
tags: ['mongodb', 'database', 'NoSQL'],
viewers: 104
}
‘_id’ is a 12 bytes hexadecimal number. A special key which uniquely identifies each document in a collection and automatically added when not added explicitly.
Step 6: Inserting data inside collectionMethods used:
insert_one() or insert_many()
Insert the document into a collection:
rec = mycollection.insert_one(record)
The complete code looks like this when implemented:
Python
from pymongo import MongoClient
client=MongoClient()
client = MongoClient(“mongodb://localhost:27017/”)
mydb = client[‘my_database’]
mycollection = mydb[‘myTable’]
record = {
title: 'MongoDB and Python',
description: 'MongoDB is no SQL database',
tags: ['mongodb', 'database', 'NoSQL'],
viewers: 104
}
rec = mydb.myTable.insert(record)
Step 7: Querying the Database
Certain query functions are used to filter data in a MongoDB database. Among them, the two most commonly used are:
find(): used to retrieve multiple documents from a collection that match a given query.
Python
for i in mycollection.find({"title": "MongoDB and Python"}):
print(i)
count_documents(): used to count the number of documents in a collection that match a specific query.
Python
count = mycollection.count_documents({"title": "MongoDB and Python"})
print(count)
To print all the documents/entries inside 'myTable' of database 'mydatabase':
Python
from pymongo import MongoClient
try:
conn = MongoClient("localhost", 27017)
print("Connected successfully!")
except Exception as e:
print("Could not connect to MongoDB:", e)
db = conn["mydatabase"]
collection = db["myTable"]
for record in collection.find():
print(record)
Explanation:
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4