Utilizarea bulk_write()
Așa cum ai văzut în videoclip, poți folosi mai multe tipuri de operațiuni în .bulk_write():
InsertOne()UpdateOne()/UpdateMany()/ReplaceOne()DeleteOne()/DeleteMany()ReplaceOne()
Faci puțină ordine în baza de date cu filme, iar unele dintre aceste operațiuni îți vor fi de mare ajutor!
În primul rând, echipa ta vrea să marcheze toate filmele foarte bine cotate care au câștigat un Oscar ca "featured" pe pagina principală. În al doilea rând, pentru a reduce dezordinea, ți s-a cerut să ștergi toate filmele lansate cu mult timp în urmă.
Vei grupa ambele modificări într-o singură operațiune .bulk_write() pentru a le executa împreună.
Acest exercițiu face parte din cursul
Introducere în MongoDB cu Python
Instrucțiuni pentru exercițiu
- Completează prima operațiune din
operationspentru a actualiza toate filmele cu un rating mai mare sau egal cu8.0și care au câștigat un Oscar; setează un câmp nou"featured"laTruepentru aceste filme. - Completează a doua operațiune din
operationspentru a șterge toate filmele cu anul de lansare anterior lui1980. - Execută operațiunea
.bulk_write()pemovși stochează rezultatul înres. - Afișează câte documente au fost modificate și câte au fost șterse.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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.____)