MongoDB Manager
The MongoDBManager class is a wrapper around the pymongo package, designed to simplify the usage of MongoDB in Python applications. It provides convenient methods for connecting to a MongoDB cluster, accessing a specific database and collection, and performing common CRUD operations.
Installation
You can install the package using pip:
pip install mongodb_python_manager
Usage
To use the MongoDBManager class, follow these steps:
- Import the necessary modules and classes:
from mongodb_python_manager import MongoDBManager
- Create an instance of MongoDBManager by providing the MongoDB cluster URI, database name, and optional username and password:
mongo_db_cluster = 'your_cluster_uri'
mongodb_db_name = 'your_database_name'
mongo_db_user = 'your_username'
mongo_db_password = 'your_password'
mongodb_manager = MongoDBManager(
mongo_db_cluster=mongo_db_cluster,
mongodb_db_name=mongodb_db_name,
mongo_db_user=mongo_db_user,
mongo_db_password=mongo_db_password
)
- Set the collection name you want to work with:
collection_name = 'your_collection_name'
mongodb_manager.set_collection_name(collection_name)
- Perform database operations using the available methods:
- Insert a single document:
item = {'key1': 'value1', 'key2': 'value2'}
mongodb_manager.insert_content_in_collection(item)
- Insert multiple documents:
items = [{'key1': 'value1'}, {'key2': 'value2'}]
mongodb_manager.insert_many_content_in_collection(items)
item_id = 'your_item_id'
updated_item = {'key1': 'new_value1', 'key2': 'new_value2'}
mongodb_manager.update_document_in_collection(updated_item, item_id)
- Update multiple documents by ID:
items = [
{
'id': 'item_id1',
'key1': 'new_value1'
},
{
'id': 'item_id2',
'key2': 'new_value2'
}
]
mongodb_manager.update_many_documents_in_collection(items, 'id')
- Get all documents from a collection:
documents = mongodb_manager.get_all_documents_from_collection()
item_id = 'your_item_id'
mongodb_manager.delete_content_in_collection(item_id)
- Delete all documents from a collection:
mongodb_manager.delete_all_documents_from_collection()
- Remember to handle exceptions appropriately and close the MongoDB connection when you're done:
mongodb_manager.client.close()
Configuration
The MongoDBManager class expects the MongoDB cluster URI, database name, and optionally, a username and password. By default, it looks for these values in environment variables named MONGO_DB_CLUSTER, MONGODB_DB_NAME, MONGO_DB_USER, and MONGO_DB_PASSWORD. Alternatively, you can provide these values directly when creating an instance of MongoDBManager.
Ensure that you have the necessary permissions and access credentials to connect to your MongoDB cluster and perform operations on the specified database and collection.
Dependencies
The MongoDBManager class relies on the following packages:
pymongo: The MongoDB Python driver for interacting with the MongoDB server.
python-dotenv: A package for reading configuration variables from .env files.
Example
Here's a simple example that demonstrates the usage of the MongoDBManager class:
from mongodb_manager import MongoDBManager
mongo_db_cluster = 'your_cluster_uri'
mongodb_db_name = 'your_database_name'
mongo_db_user = 'your_username'
mongo_db_password = 'your_password'
mongodb_manager = MongoDBManager(mongo_db_cluster, mongodb_db_name, mongo_db_user, mongo_db_password)
collection_name = 'your_collection_name'
mongodb_manager.set_collection_name(collection_name)
item = {'name': 'John', 'age': 30}
mongodb_manager.insert_content_in_collection(item)
items = [{'name': 'Alice', 'age': 25}, {'name': 'Bob', 'age': 35}]
mongodb_manager.insert_many_content_in_collection(items)
item_id = 'your_item_id'
updated_item = {'name': 'John Doe', 'age': 31}
mongodb_manager.update_document_in_collection(updated_item, item_id)
documents = mongodb_manager.get_all_documents_from_collection()
for document in documents:
print(document)
item_id = 'your_item_id'
mongodb_manager.delete_content_in_collection(item_id)
mongodb_manager.delete_all_documents_from_collection()
mongodb_manager.client.close()
Make sure to replace 'your_cluster_uri', 'your_database_name', 'your_username', 'your_password', and 'your_collection_name' with your actual MongoDB cluster URI, database name, username, password, and collection name respectively.