Esercizi Connessione MongoDB Python
Codegrind Team•Jul 10 2024
Esercizi sulla connessione a un database MongoDB utilizzando le librerie Python pymongo
e motor
. Gli esercizi includono sia approcci sequenziali che orientati agli oggetti (OOP) e si concentrano esclusivamente sulla connessione al database.
Esercizio 1: Connessione con pymongo (Sequenziale)
Esempio di connessione a un database MongoDB usando pymongo.
from pymongo import MongoClient
def connect_db():
client = MongoClient('mongodb://localhost:27017/')
db = client['testdb']
print("Connessione al database:", db.name)
client.close()
connect_db()
Esercizio 2: Connessione con motor (OOP)
Creare una classe per gestire la connessione a un database MongoDB usando motor.
import motor.motor_asyncio
class MongoDBConnection:
def __init__(self, uri, db_name):
self.client = motor.motor_asyncio.AsyncIOMotorClient(uri)
self.db = self.client[db_name]
async def connect(self):
print("Connessione al database:", self.db.name)
async def close(self):
self.client.close()
print("Connessione chiusa.")
# Uso
import asyncio
async def main():
db_connection = MongoDBConnection('mongodb://localhost:27017/', 'testdb')
await db_connection.connect()
await db_connection.close()
asyncio.run(main())
Esercizio 3: Connessione con pymongo (OOP)
Creare una classe per gestire la connessione a un database MongoDB usando pymongo.
from pymongo import MongoClient
class MongoDBConnection:
def __init__(self, uri, db_name):
self.client = MongoClient(uri)
self.db = self.client[db_name]
def connect(self):
print("Connessione al database:", self.db.name)
def close(self):
self.client.close()
print("Connessione chiusa.")
# Uso
db_connection = MongoDBConnection('mongodb://localhost:27017/', 'testdb')
db_connection.connect()
db_connection.close()
Esercizio 4: Connessione con motor (Sequenziale)
Stabilire una connessione a un database MongoDB usando motor.
import motor.motor_asyncio
async def connect_db():
client = motor.motor_asyncio.AsyncIOMotorClient('mongodb://localhost:27017/')
db = client['testdb']
print("Connessione al database:", db.name)
client.close()
# Uso
import asyncio
asyncio.run(connect_db())
Esercizio 5: Connessione con pymongo con gestione delle eccezioni (Sequenziale)
Connessione a MongoDB utilizzando pymongo con gestione delle eccezioni.
from pymongo import MongoClient, errors
def connect_db():
try:
client = MongoClient('mongodb://localhost:27017/')
db = client['testdb']
print("Connessione al database:", db.name)
except errors.ConnectionError as e:
print("Errore di connessione:", e)
finally:
client.close()
connect_db()
Esercizio 6: Connessione asincrona con motor e gestione delle eccezioni (OOP)
Creare una classe per gestire la connessione asincrona a un database MongoDB usando motor e gestire le eccezioni.
import motor.motor_asyncio
import asyncio
class MongoDBConnection:
def __init__(self, uri, db_name):
self.client = motor.motor_asyncio.AsyncIOMotorClient(uri)
self.db = self.client[db_name]
async def connect(self):
try:
print("Connessione al database:", self.db.name)
except Exception as e:
print("Errore di connessione:", e)
async def close(self):
self.client.close()
print("Connessione chiusa.")
# Uso
async def main():
db_connection = MongoDBConnection('mongodb://localhost:27017/', 'testdb')
await db_connection.connect()
await db_connection.close()
asyncio.run(main())