Uso di bulk_write()
Come hai visto nel video, puoi usare diverse operazioni in .bulk_write():
InsertOne()UpdateOne()/UpdateMany()/ReplaceOne()DeleteOne()/DeleteMany()ReplaceOne()
Stai facendo un po' di pulizia di primavera nel tuo database di film: alcune di queste operazioni torneranno utili!
Per prima cosa, il tuo team vuole evidenziare in homepage tutti i film pluripremiati agli Oscar con valutazioni alte impostandoli come "featured". Poi, per ridurre il disordine, ti è stato chiesto di rimuovere tutti i film usciti molto tempo fa.
Raggrupperai entrambe le modifiche in un'unica operazione .bulk_write() per eseguirle insieme.
Questo esercizio fa parte del corso
Introduzione a MongoDB in Python
Istruzioni dell'esercizio
- Completa la prima operazione in
operationsper aggiornare tutti i film con un rating maggiore o uguale a8.0e che hanno vinto un Oscar; imposta un nuovo campo"featured"aTrueper questi film. - Completa la seconda operazione in
operationsper eliminare tutti i film con anno di uscita precedente al1980. - Esegui l'operazione
.bulk_write()sumove salva il risultato inres. - Stampa quanti documenti sono stati modificati e quanti sono stati eliminati.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
from pymongo import UpdateMany, DeleteMany
operations = [
# Set featured to True for all movies with rating > 8 that won oscar
____(
{ "rating" : { ____: ____}, "won_oscar": ____ },
{ "$set": { ____: ____} }
),
# Remove all movies with release_year before 1980
____(
{ "release_year": { ____: ____} }
)
]
# Perform bulk write
res = mov.____
# Print out counts
print(res.____)
print(res.____)