Python MongoDB Tutorial

Introduction

MongoDB is a popular NoSQL database that uses a flexible, JSON-like document structure. Python, with its extensive libraries, can interact with MongoDB databases to perform various operations like creating, reading, updating, and deleting records. This tutorial covers the basics of connecting Python to a MongoDB database and performing common database operations.

Table of Contents

  1. Prerequisites
  2. Installing PyMongo
  3. Connecting to MongoDB
  4. Creating a Database
  5. Creating a Collection
  6. Inserting Documents
  7. Querying Documents
  8. Updating Documents
  9. Deleting Documents
  10. Using Indexes
  11. Handling Exceptions
  12. Conclusion

1. Prerequisites

Before you start, make sure you have:

  • Python installed on your system.
  • MongoDB installed and running on your system.
  • Basic knowledge of MongoDB and Python.

2. Installing PyMongo

To interact with MongoDB, you need to install the PyMongo library. You can install it using pip.

pip install pymongo

3. Connecting to MongoDB

To connect to a MongoDB database, you need to import the pymongo module and use the MongoClient class.

Example

from pymongo import MongoClient

# Establishing the connection
client = MongoClient("mongodb://localhost:27017/")

# Checking if the connection was successful
print("Connected to MongoDB")

4. Creating a Database

MongoDB databases are created automatically when you insert data into a collection. You can also explicitly create a database.

Example

# Creating a database
db = client["mydatabase"]
print("Database created successfully")

5. Creating a Collection

Collections in MongoDB are analogous to tables in relational databases. You can create a collection explicitly or it will be created when you insert data.

Example

# Creating a collection
collection = db["employees"]
print("Collection created successfully")

6. Inserting Documents

You can insert documents into a collection using the insert_one() and insert_many() methods.

Example

# Inserting a single document
employee = {"first_name": "Ravi", "last_name": "Kumar", "email": "ravi.kumar@example.com"}
collection.insert_one(employee)
print("Single document inserted successfully")

# Inserting multiple documents
employees = [
    {"first_name": "Anjali", "last_name": "Sharma", "email": "anjali.sharma@example.com"},
    {"first_name": "Suresh", "last_name": "Verma", "email": "suresh.verma@example.com"}
]
collection.insert_many(employees)
print("Multiple documents inserted successfully")

7. Querying Documents

You can query documents from a collection using the find_one() and find() methods.

Example

# Querying a single document
employee = collection.find_one({"first_name": "Ravi"})
print("Single document:", employee)

# Querying multiple documents
employees = collection.find({"last_name": "Sharma"})
for emp in employees:
    print(emp)

8. Updating Documents

You can update documents in a collection using the update_one() and update_many() methods.

Example

# Updating a single document
collection.update_one({"first_name": "Ravi"}, {"$set": {"email": "ravi.kumar@newemail.com"}})
print("Single document updated successfully")

# Updating multiple documents
collection.update_many({"last_name": "Sharma"}, {"$set": {"email": "anjali.sharma@newdomain.com"}})
print("Multiple documents updated successfully")

9. Deleting Documents

You can delete documents from a collection using the delete_one() and delete_many() methods.

Example

# Deleting a single document
collection.delete_one({"first_name": "Ravi"})
print("Single document deleted successfully")

# Deleting multiple documents
collection.delete_many({"last_name": "Sharma"})
print("Multiple documents deleted successfully")

10. Using Indexes

Indexes improve the efficiency of database operations. You can create indexes using the create_index() method.

Example

# Creating an index on the "email" field
collection.create_index("email")
print("Index created successfully")

11. Handling Exceptions

Use try-except blocks to handle exceptions that may occur during database operations.

Example

from pymongo.errors import ConnectionError, OperationFailure

try:
    # Trying to connect to MongoDB
    client = MongoClient("mongodb://localhost:27017/")
    db = client["mydatabase"]
    collection = db["employees"]
    print("Connected to MongoDB and accessed the collection")
except ConnectionError:
    print("Failed to connect to MongoDB")
except OperationFailure:
    print("Failed to access the collection")

12. Conclusion

Connecting Python to a MongoDB database allows you to perform various database operations from your Python applications. This tutorial covered the basics of connecting to a MongoDB database, creating databases and collections, inserting, querying, updating, and deleting documents, using indexes, and handling exceptions. By mastering these concepts, you can efficiently manage and interact with MongoDB databases in your Python projects.

Comments