Kombinera MongoDB-operationer

Introduktion till MongoDB i Python

Filip Schouwenaars

Machine Learning Researcher

Bygga en bulkoperation

from pymongo import InsertOne, UpdateOne    # import classes

operations = [ InsertOne({ # operation 1 "title": "Dune", "genre": ["action", "adventure", "drama"], "release_year": 2021, "rating": 8.0, "won_oscar": False }), UpdateOne( # operation 2 { "title": "Titanic" }, { "$set": { "won_oscar": True } } ) ]
result = mov.bulk_write(operations) # pass list to bulk_write
Introduktion till MongoDB i Python

Förstå resultatet

print(result.inserted_count)
1
print(result.modified_count)
1

Tänk på

  • Körs i ordning: tidigare operationer återställs inte
  • Vill du ha striktare säkerhet? Läs om transaktioner
Introduktion till MongoDB i Python

Varför använda bulk_write?

  • Effektivt
    • Skickar alla operationer i en enda förfrågan
    • Sparar tid och minskar nätverksbelastning
  • Spårbart
    • Ett enda resultatobjekt
    • Samlad sammanfattning av alla operationers resultat
    • Enklare att granska och felsöka
  • Strukturerat
    • Undviker utspridda operationer
    • Håller logiken samlad och lättläst
Introduktion till MongoDB i Python

Vad kan du kombinera?

  • Använd valfri kombination av:

    • InsertOne()
    • UpdateOne() / UpdateMany() / ReplaceOne()
    • DeleteOne() / DeleteMany()
    • ReplaceOne()
  • Passar bra för:

    • Synkronisering av data
    • Rensning av datamängder
    • Bulkimporter
Introduktion till MongoDB i Python

Nu kör vi en övning!

Introduktion till MongoDB i Python

Preparing Video For Download...