Esercizi Modifica MongoDB Python Esercizio 1: Aggiornamento Singolo con pymongo (Sequenziale) Esercizio 2: Aggiornamento Multiplo con pymongo (OOP) Esercizio 3: Aggiornamento Singolo con motor (Sequenziale) Esercizio 4: Aggiornamento Multiplo con motor (OOP) Esercizio 5: Aggiornamento con Opzioni con pymongo (Sequenziale) Esercizio 6: Aggiornamento con Array con pymongo (OOP) Esercizio 7: Aggiornamento Condizionale con motor (Sequenziale) Esercizio 8: Aggiornamento con Incremento con motor (OOP) Esercizi sulla modifica di dati in un database MongoDB utilizzando le librerie Python pymongo
e motor
. Gli esercizi includono approcci sequenziali e orientati agli oggetti (OOP).
Esercizio 1: Aggiornamento Singolo con pymongo (Sequenziale)
Aggiornare un singolo documento in una collezione utilizzando pymongo.
from pymongo import MongoClient
def update_single_document ():
client = MongoClient( 'mongodb://localhost:27017/' )
collection = db[ 'employees' ]
result = collection.update_one({ "name" : "John Doe" }, { "$set" : { "position" : "Senior Software Engineer" }})
print ( "Documenti modificati:" , result.modified_count)
Esercizio 2: Aggiornamento Multiplo con pymongo (OOP)
Aggiornare più documenti in una collezione utilizzando pymongo e OOP.
from pymongo import MongoClient
def __init__ (self, uri, db_name, collection_name):
self .client = MongoClient(uri)
self .db = self .client[db_name]
self .collection = self .db[collection_name]
def update_multiple_documents (self, query, update):
result = self .collection.update_many(query, update)
print ( "Documenti modificati:" , result.modified_count)
db_connection = MongoDBConnection( 'mongodb://localhost:27017/' , 'testdb' , 'employees' )
db_connection.update_multiple_documents({ "position" : "Developer" }, { "$set" : { "position" : "Software Developer" }})
Esercizio 3: Aggiornamento Singolo con motor (Sequenziale)
Aggiornare un singolo documento in una collezione utilizzando motor.
import motor.motor_asyncio
async def update_single_document ():
client = motor.motor_asyncio.AsyncIOMotorClient( 'mongodb://localhost:27017/' )
collection = db[ 'employees' ]
result = await collection.update_one({ "name" : "Jane Doe" }, { "$set" : { "position" : "Lead Analyst" }})
print ( "Documenti modificati:" , result.modified_count)
asyncio.run(update_single_document())
Esercizio 4: Aggiornamento Multiplo con motor (OOP)
Aggiornare più documenti in una collezione utilizzando motor e OOP.
import motor.motor_asyncio
def __init__ (self, uri, db_name, collection_name):
self .client = motor.motor_asyncio.AsyncIOMotorClient(uri)
self .db = self .client[db_name]
self .collection = self .db[collection_name]
async def update_multiple_documents (self, query, update):
result = await self .collection.update_many(query, update)
print ( "Documenti modificati:" , result.modified_count)
db_connection = MongoDBConnection( 'mongodb://localhost:27017/' , 'testdb' , 'employees' )
await db_connection.update_multiple_documents({ "position" : "Manager" }, { "$set" : { "position" : "Senior Manager" }})
Esercizio 5: Aggiornamento con Opzioni con pymongo (Sequenziale)
Aggiornare un documento con opzioni specifiche (es. upsert) utilizzando pymongo.
from pymongo import MongoClient
def update_with_options ():
client = MongoClient( 'mongodb://localhost:27017/' )
collection = db[ 'employees' ]
result = collection.update_one(
{ "$set" : { "position" : "Principal Data Scientist" }},
print ( "Documenti modificati o inseriti:" , result.upserted_id or result.modified_count)
Esercizio 6: Aggiornamento con Array con pymongo (OOP)
Aggiornare un documento modificando un array all'interno del documento utilizzando pymongo e OOP.
from pymongo import MongoClient
def __init__ (self, uri, db_name, collection_name):
self .client = MongoClient(uri)
self .db = self .client[db_name]
self .collection = self .db[collection_name]
def update_array_field (self, query, update):
result = self .collection.update_one(query, update)
print ( "Documenti modificati:" , result.modified_count)
db_connection = MongoDBConnection( 'mongodb://localhost:27017/' , 'testdb' , 'projects' )
db_connection.update_array_field(
{ "project_name" : "Project X" },
{ "$push" : { "team_members" : { "name" : "New Member" , "role" : "Tester" }}}
Esercizio 7: Aggiornamento Condizionale con motor (Sequenziale)
Aggiornare documenti condizionati su un valore specifico utilizzando motor.
import motor.motor_asyncio
async def update_conditional_documents ():
client = motor.motor_asyncio.AsyncIOMotorClient( 'mongodb://localhost:27017/' )
collection = db[ 'employees' ]
result = await collection.update_many({ "years_of_experience" : { "$gt" : 5 }}, { "$set" : { "senior" : True }})
print ( "Documenti modificati:" , result.modified_count)
asyncio.run(update_conditional_documents())
Esercizio 8: Aggiornamento con Incremento con motor (OOP)
Aggiornare un documento incrementando un valore numerico utilizzando motor e OOP.
import motor.motor_asyncio
def __init__ (self, uri, db_name, collection_name):
self .client = motor.motor_asyncio.AsyncIOMotorClient(uri)
self .db = self .client[db_name]
self .collection = self .db[collection_name]
async def increment_field (self, query, field, increment_value):
result = await self .collection.update_one(query, { "$inc" : {field: increment_value}})
print ( "Documenti modificati:" , result.modified_count)
db_connection = MongoDBConnection( 'mongodb://localhost:27017/' , 'testdb' , 'employees' )
await db_connection.increment_field({ "name" : "Bob Johnson" }, "years_of_experience" , 1 )