Inizia subitoInizia gratis

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

Visualizza corso

Istruzioni dell'esercizio

  • Completa la prima operazione in operations per aggiornare tutti i film con un rating maggiore o uguale a 8.0 e che hanno vinto un Oscar; imposta un nuovo campo "featured" a True per questi film.
  • Completa la seconda operazione in operations per eliminare tutti i film con anno di uscita precedente al 1980.
  • Esegui l'operazione .bulk_write() su mov e salva il risultato in res.
  • 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.____)
Modifica ed esegui il codice