🚀 Nuova versione beta disponibile! Feedback o problemi? Contattaci

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())