Kom igångKom igång gratis

Använda bulk_write()

Som du såg i videon kan du använda ett antal operationer i .bulk_write():

  • InsertOne()
  • UpdateOne() / UpdateMany() / ReplaceOne()
  • DeleteOne() / DeleteMany()
  • ReplaceOne()

Du håller på att städa upp i din filmdatabas och några av dessa kommer väl till pass!

Först vill ditt team markera alla högt betygsatta Oscarsvinnande filmer som "featured" på startsidan. Därefter ska du ta bort alla filmer som släpptes för länge sedan för att minska mängden data.

Du grupperar båda ändringarna i en enda .bulk_write()-operation och kör dem tillsammans.

Den här övningen är en del av kursen

Introduktion till MongoDB i Python

Visa kurs

Övningsinstruktioner

  • Fyll i den första operationen i operations för att uppdatera alla filmer med ett betyg större än eller lika med 8.0 som även har vunnit en Oscar; sätt ett nytt fält "featured" till True för dessa filmer.
  • Fyll i den andra operationen i operations för att ta bort alla filmer med ett utgivningsår före 1980.
  • Kör .bulk_write()-operationen på mov och lagra resultatet som res.
  • Skriv ut hur många dokument som ändrades och hur många dokument som togs bort.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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.____)
Redigera och kör kod